numpy中的shape函数
NumPy是Python中用于科学计算的开源库。它提供了高效的数组处理能力,支持多维数组和向量化操作。NumPy中的shape函数是一个用于获取NumPy数组维度信息和调整数组维度的函数,本文将详细介绍它的具体用法和应用场景。
一、NumPy数组的shape属性
NumPy中的数组可以是一个一维数组,也可以是二维或多维数组。每一个数组都有一个shape属性,它表示数组的维度情况。如果数组是一个一维数组,那么它的shape属性是一个整数,表示数组的元素数量。如果数组是一个二维或多维数组,那么shape属性是一个元组,元组中的每一个值分别表示数组在不同维度上的元素数量。
例如,一个表示二维平面上五个点坐标的NumPy数组,它的shape属性应该是(5,2),因为它在第一维上有5个元素,在第二维上有2个元素。下面是一个使用NumPy初始化该数组的例子:
``` import numpy as np
points = np.array([(0,0), (1,1), (2,0), (3,1), (4,0)])
print(points.shape) ```
运行后,输出结果是:
``` (5, 2) ```
二、NumPy中的shape函数介绍
shape函数是NumPy提供的一个用于获取数组维度信息的函数,它的用法非常简单。我们只需要在数组后面加上.shape即可。例如,对于上面的例子,我们可以这样使用shape函数:
``` import numpy as np
points = np.array([(0,0), (1,1), (2,0), (3,1), (4,0)])
print(points.shape) ```
输出结果同样是:
``` (5, 2) ```
shape函数的返回值是一个元组,元组中的每一个值分别表示数组在不同维度上的元素数量。我们可以把元组赋值给一个变量,然后使用变量来访问数组的维度信息,如下所示:
``` import numpy as np
points = np.array([(0,0), (1,1), (2,0), (3,1), (4,0)])
shape = points.shape
print(shape[0], shape[1]) ```
输出结果是:
``` 5 2 ```
其他NumPy中的函数和方法也可以返回数组的shape属性。例如,可以使用numaxes方法获取数组的轴数,使用size获取数组元素的总数。
三、NumPy中的reshape函数
除了获取数组的shape属性之外,我们还可以使用reshape函数来改变数组的形状。reshape函数接受一个元组作为参数,元组中的每一个值表示每个维度上的元素数量。
例如,我们可以使用reshape函数将上面的points数组变成一个5行2列的矩阵,如下所示:
``` import numpy as np
points = np.array([(0,0), (1,1), (2,0), (3,1), (4,0)])
matrix = shape((5, 2))
print(matrix) ```
运行后,输出结果是:numpy库常用函数
``` array([[0, 0],        [1, 1],        [2, 0],        [3, 1],        [4, 0]]) ```
reshape函数返回的是一个新的数组,它的shape属性已经改变了。我们可以使用shape函数来验证这一点:
``` import numpy as np
points = np.array([(0,0), (1,1), (2,0), (3,1), (4,0)])
matrix = shape((5, 2))
print(matrix.shape) ```
输出结果是:
``` (5, 2) ```
reshape函数也可以用来创建高维数组。例如,我们可以使用reshape函数将上面的points数组变成一个5行1列的3维数组,如下所示: