首先看np.max函数返回为
Return the maximum of an array or maximum along an axis
一个是数组的最大值,另一个是沿着轴的最大值。首先一个数组的最大值好理解,主要是沿着某个轴的最大值怎么求,最后得到的形状是什么?
那我们首先生成一个数组,形状为[2, 3, 4],我们分别返回沿着0, 1, 2三个轴返回其最大值,我们看返回后的形状分别为
- 轴0:[3, 4]
- 轴1:[2, 4]
- 轴2:[2, 3]
我们发现返回后的形状是除该轴外的形状,比如轴0的维度为2,那返回后就是[3, 4]。
那么函数具体是怎么计算的呢?
其实是这样的,比如针对轴0,我们抽取轴0的所有array, 每个array的形状都是[3, 4],现在对每个array的对应位置进行大小比较求得最大值,最后返回一个[3, 4]的array。如下图所示,我们在抽取轴0的所有array之后也可以调用np.maximum函数进行两个array的比较得到的结果和直接np.max(array, axis=0)是一样的。