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()是一個運算,看了上面的例子是不是一下就懂了?