首先說下axis . 直觀的理解爲當axis = n,時, 在n這個維度觀察數據,比如n是列,則取一列,求最小值,然後在其他維度循環這樣的操作。或者也可以理解爲axis=n, 則原始數據第n維爲也就是shape[n] = 1, 其他維不變,axis = m,n,等價於先m,再n 操作,或者理解爲m,n維爲1 其他維度不變。
np.amin()
當輸入是不一定是numpy.array 時,用np.amin, 如果輸入是np.array, 可以直接用input.min(axis=n) 來求最小值矩陣
import numpy as np
a = np.random.randint(2,40,size=(2,3,4))
print(a)
print("="*90)
print("np.amin(a,0)",np.amin(a,0))
print("a.min(0)", a.min(0))
print("="*90)
print("np.amin(a,1)",np.amin(a,1))
print("a.min(1)", a.min(1))
print("="*90)
print("np.amin(a,2)",np.amin(a,2))
print("a.min(2)", a.min(2))
print("="*90)
print(np.amin(a,(0,2)))
# min 的axis 只能是int ,print("a.min([0,2])", a.min([0,2]))會報錯
#TypeError: 'list' object cannot be interpreted as an integer
結果
[[[38 3 22 27]
[32 35 15 36]
[38 20 28 28]]
[[ 9 9 18 12]
[24 29 36 25]
[31 31 8 30]]]
==========================================================================================
np.amin(a,0) [[ 9 3 18 12]
[24 29 15 25]
[31 20 8 28]]
a.min(0) [[ 9 3 18 12]
[24 29 15 25]
[31 20 8 28]]
==========================================================================================
np.amin(a,1) [[32 3 15 27]
[ 9 9 8 12]]
a.min(1) [[32 3 15 27]
[ 9 9 8 12]]
==========================================================================================
np.amin(a,2) [[ 3 15 20]
[ 9 24 8]]
a.min(2) [[ 3 15 20]
[ 9 24 8]]
==========================================================================================
[ 3 15 8]
可見只要axis 是 int型,那麼 np.min 和 np.amin 只有用法不一樣。結果是一樣的。
======================================================================================
np.minimum 是多個input 進行比較,
input1.shape = input2.shape = output.shape, 只是對應元素位置上區最小值。