rows
axis=0:按 列 计算,结果沿着 行(rows) 的方向→
cols
axis=1:按 行 计算,结果沿着 列(cols) 的方向↓
import numpy as np x = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]]) print ("x= \n",x)
x= [[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]]
比较axis=0/axis=1求和
print ("sum all: ", np.sum(x)) # adds all elements(所有数字求和) print ("sum axis=0: ", np.sum(x, axis=0)) # sum across rows(按 列 求和,结果沿 行 的方向) print ("sum axis=1: ", np.sum(x, axis=1)) # sum across columns(按 行 求和,结果沿 列 的方向)
sum all: 78 sum axis=0: [15 18 21 24] #1+5+9,2+6+10,3+7+11,4+8+12 #沿行的方向,意味着计算方向是从左至右的,先计算最左面一列,然后向右计算下一列 sum axis=1: [10 26 42] #1+2+3+4,5+6+7+8,9+10+11+12 #沿列的方向,意味着计算方向是从上至下的,先计算最上面一行,然后向下计算下一行
比较axis=0/axis=1求极值
print ("min: ", x.min()) print ("max: ", x.max()) print ("min axis=0: ", x.min(axis=0)) #按列求极小值,结果沿 行 方向 print ("min axis=1: ", x.max(axis=1)) #按行求极大值,结果沿 列 方向
min: 1 max: 12 min axis=0: [1 2 3 4] min axis=1: [ 4 8 12]
【参考】
【1】知乎 Python:对于“axis=0和axis=1”的理解