numpy中的max和maximum
numpy科学计算包中有两个函数np.max()和np.maximum(),他们的功能截然不同。简单而言即前者作用于ndarray对象,求的是它自身的最大。而后者是一个数学上的取$\max$的效果,它是一个运算。
先说np.max()
>>>A = np.array([[1,8,3,6,5],[9,2,7,4,5]]) >>>np.max(A) 9 >>>np.max(A, axis=0) array([9, 8, 7, 6, 5]) >>>np.max(A, axis=1) array([8, 9])
效果一目了然。不加axis参数的时候它会返回一个数组所有元素中的最大值。axis=0时它返回了列最大值,axis=1的时候它返回了行最大值。(这个时候它表现的像matlab里的max函数)
你可能会问,axis=0不是行么?axis=1不是列么?怎么刚好反过来了。这个其实不是这样看的,它的计算方式和numpy看待数组的方式有关。看了我的这篇文章你会豁然开朗https://www.cnblogs.com/chester-cs/p/12682612.html
再说np.maximum()
>>>np.maximum(A, 5) array([[5, 8, 5, 6, 5], [9, 5, 7, 5, 5]]) >>>np.maximum(A,10) array([[10, 10, 10, 10, 10], [10, 10, 10, 10, 10]])
前面已经说了np.maximum()是一个运算,看了上面的例子是不是一下就懂了?