我之前一直理解的np.min(axis = 0) 就是求第一维度的和,实际上python做计算的时候,如果计算axis = 0则就是按0维的另一维度的值:
如下所示:
>>>a = np.array(range(0,12))
>>>b = a.reshape((3,4))
>>>b
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>> np.max(b) #max number
11
>>> np.max(b, axis=0) #看结果是取出最大的一行
array([ 8, 9, 10, 11])
>>> np.max(b, axis=1) #看结果是取出最大的一列
array([ 3, 7, 11])
下面我们把数据改一下,看看是这个结果是怎么出来的,是每一行去最大的数,还是取每一行求和最大的数
>>> b = np.array([[0, 10, 30, 3],
[4, 5, 6, 7],
[8, 9, 10, 11]])
>>> np.max(b, axis=0)
array([ 8, 10, 30, 11])
>>> np.max(b, axis=1)
array([30, 7, 11])
#事实上:结果是每一行取出最大的那一个数(axis=1),每一列取出最大的数(axis=0)
np.sum也是如此:
>>> a=[[1,1,1,1],[2,2,2,2],[3,3,3,3]]
>>> import numpy as np
>>> a = np.array(a)
>>> a
array([[1, 1, 1, 1],
[2, 2, 2, 2],
[3, 3, 3, 3]])
>>> np.sum(a, axis=0) #往x轴上投影
array([6, 6, 6, 6])
>>> np.sum(a, axis=1) ##往y轴上投影
array([ 4, 8, 12])
转载:https://blog.csdn.net/zjm750617105/article/details/53378452