大纲:
- numpy中axis参数说明:
axis=i,即沿着数组第i个下标的变化方向进行操作。 - 关于NumPy中数组轴的理解:
学好数据分析,得学好Numpy;学好Numpy,首先彻底理解“轴”的概念!
一、numpy中axis参数
背景:
许多关于计算整个数组统计值或关于轴向数据的数学函数,可以作为数组类型的方法被调用。你可以使用聚合函数(通常也叫缩减函数),比如sum、mean。像这样的函数可以接收一个可选参数axis,这个参数可以用于计算给定轴向上的统计值,形成一个下降一维度的数组。
这里我们用numpy.sum(axis=i)进行说明
举例说明:
k = np.reshape(np.arange(24), [3, 2, 4])
print(k)
[[[ 0 1 2 3]
[ 4 5 6 7]]
[[ 8 9 10 11]
[12 13 14 15]]
[[16 17 18 19]
[20 21 22 23]]]
这是一个(3,2,4)维的矩阵,那么对于每个元素,均可用3个下标i,j,k表示,如:
k[i][j][k]
k[0][0][0]=0
k[0][0][3]=3
k[0][1][0]=4
k[1][0][0]=8
k[2][1][3]=23
# 坐标轴的取值范围
i={
0,1,2}
j={
0,1}
k={
0,1,2,3}
轴的概念:
求和属于聚合函数,操作是降维操作。数组k
有三个轴分别是I,J,K轴,这三个轴也分别叫第0轴、第1轴和第2轴。分别按照这三个轴进行求和:
axis=0
当axis=0
,即沿着第0个轴i下标变化的方向进行求和,第0轴降维,得到的shape=(2,4)
原规模为3x2x4的三维数组,将3变为1,降成了规模为2x4的二维数组。
print(k.sum(axis=0))
print(k.sum(axis=0).shape)
[[24 27 30 33]
[36 39 42 45]]
(2, 4)
通过手算,沿着第0个坐标遍历求和,解释上面输出结果的由来,:
# 沿着第三个坐标 k=0,1,2,3,再沿着第二个坐标j=0,1,共计算8次
# 坐标轴的取值范围
# i={0,1,2}
# j={0,1}
# k={0,1,2,3}
k[0][0][0]+k[1][0][0]+k[2][0][0]=24
k[0][0][1]+k[1][0][1]+k[2][0][1]=27
k[0][0][2]+k[1][0]