通常情况下我们都会赋予axis参数“轴”的概念,对于常见的二维数据来说,
axis=0表示纵轴,即列;
axis=1表示横轴,即行;
当axis=0的时候,我们可以将数据和轴组成的整体看作是一串竖着摆放的糖葫芦(棍垂直于水平面)示例如下图所示:
此时图中的[1,2,3]、[4,5,6]可以分别看作是糖葫芦的两个果子,而红色的轴则表示穿着果子的棍(axis=0),对于此时的状态,每个果子是一个整体,当进行sum()加和操作时,我们需要将两个果子对应位置的数据进行相加而不是将每个果子进行加和,最终可以得到结果[5,7,9]
import numpy as np
matrix = np.array([[1,2,3],[4,5,6]])
nu.sum(matrix,axis = 0)
#结果
#array([5,7,9])
总结为一句话:设axis=i,则numpy沿着第i个下标变化的方向进行操作。
当然,这个i是从0开始数的,作为程序员的你一定不会搞错。
axis意为“轴”,它指定了函数在张量(矩阵、等等)上进行操作的方向。
例如有一个ndarray,名叫A,A.shape=(3,8,5,7)。
那么np.sum(A, axis=2)计算的结果的shape就是(3,8,7)。
import numpy as np
A = np.random.randn(3,8,5,7)
print('A.shape=',A.shape)
B = np.sum(A,axis = 2)
print('B.shape=',B.shape)
#结果
#A.shape= (3,8,5,7)
#B.shape= (3,8,7)