np.max
hanyalah alias untuk np.amax
. Fungsi ini hanya bekerja pada array input tunggal dan menemukan nilai elemen maksimum di seluruh array (mengembalikan skalar). Atau, dibutuhkan axis
argumen dan akan menemukan nilai maksimum sepanjang sumbu array input (mengembalikan array baru).
>>> a = np.array([[0, 1, 6],
[2, 4, 1]])
>>> np.max(a)
6
>>> np.max(a, axis=0) # max of each column
array([2, 4, 6])
Perilaku default np.maximum
adalah untuk mengambil dua array dan menghitung maksimum elemen-bijaksana mereka. Di sini, 'kompatibel' berarti bahwa satu array dapat disiarkan ke array lainnya. Sebagai contoh:
>>> b = np.array([3, 6, 1])
>>> c = np.array([4, 2, 9])
>>> np.maximum(b, c)
array([4, 6, 9])
Tetapi np.maximum
juga merupakan fungsi universal yang artinya memiliki fitur dan metode lain yang berguna ketika bekerja dengan array multidimensi. Misalnya, Anda dapat menghitung maksimum kumulatif di atas array (atau sumbu tertentu dari array):
>>> d = np.array([2, 0, 3, -4, -2, 7, 9])
>>> np.maximum.accumulate(d)
array([2, 2, 3, 3, 3, 7, 9])
Ini tidak mungkin dengan np.max
.
Anda dapat np.maximum
meniru np.max
sampai batas tertentu saat menggunakan np.maximum.reduce
:
>>> np.maximum.reduce(d)
9
>>> np.max(d)
9
Pengujian dasar menunjukkan bahwa kedua pendekatan tersebut sebanding dalam kinerja; dan mereka harus, sebagaimana np.max()
panggilan sebenarnyanp.maximum.reduce
untuk melakukan perhitungan.
amax
untuk tujuan (root) yang sama denganmaximum
, yaitu dengannumpy.amax([a1, a2], axis=0)
--- tetapi apakah ini tidak dioptimalkan untuk perilaku ininumpy.maximum
? Demikian pula, apakah sifat-sifat tambahan yang ditambahkannumpy.amax
(misalnyaaxis
parameter) menghalanginya dari menjadiufunc
?amax
tidak dioptimalkan untuk perbandingan elemen-bijaksana dalam hal ini - input apa pun harus berupa array Numpy, sehingga daftar akan dikonversi sebelum operasi berjalan (dengan asumsi bahwa kedua bentuk itu sama). Dokumen untukamax
secara khusus mengatakan bahwamaximum
lebih cepat di sini.amax
bisa dibuat menjadi ufunc, meskipun tujuan utama ufunc adalah untuk memungkinkan operasi disiarkan di antara array. Tampaknya sedikit kebutuhan untuk membuatmax
Uufunc unary. Saya pikiramax
ada sebelum ufuncs benar-benar benda (itu berasal dari numerik, orangtua NumPy) sehingga juga disimpan untuk anak cucu.maximum.reduce
ini lebih disukai untuk kinerja:The Python function max() will find the maximum over a one-dimensional array, but it will do so using a slower sequence interface. The reduce method of the maximum ufunc is much faster. Also, the max() method will not give answers you might expect for arrays with greater than one dimension.
[...]max()
fungsi yang dibangun di Python , bukannumpy.max()
, tetapi jelas layak untuk menunjukkan bahwa Pythonmax()
lebih lambat.Anda telah menyatakan mengapa
np.maximum
berbeda - mengembalikan array yang merupakan elemen-maksimum maksimum antara dua array.As
np.amax
dannp.max
: keduanya memanggil fungsi yang sama -np.max
hanya alias untuknp.amax
, dan mereka menghitung maksimum semua elemen dalam array, atau sepanjang sumbu array.sumber
from numpy import max as np_max
hanya untuk menghindari konflik dengan obat generikmax
setiap saat sementara saya bisa saja menggunakanamax
jangat .Untuk kelengkapan, di Numpy ada empat fungsi terkait maksimum . Mereka jatuh ke dalam dua kategori berbeda:
np.amax/np.max
,np.nanmax
: untuk statistik pesanan array tunggalnp.maximum
,np.fmax
: untuk perbandingan unsur-bijaksana dua arrayI. Untuk statistik pesanan array tunggal
Penyebar
np.amax/np.max
NaN dan rekanannya yang tidak tahu NaNnp.nanmax
.np.max
hanya aliasnp.amax
, jadi mereka dianggap sebagai satu fungsi.np.max
menyebarkan NaN sementaranp.nanmax
mengabaikan NaN.II Untuk perbandingan elemen-bijaksana dari dua array
Penyebar NaN
np.maximum
dan rekanan jahil NaN-nyanp.fmax
.Kedua fungsi membutuhkan dua array sebagai dua argumen posisi pertama untuk dibandingkan.
np.maximum
menyebarkan NaN sementaranp.fmax
mengabaikan NaN.Fungsi elemen-bijaksana adalah
np.ufunc
( Fungsi Universal ) , yang berarti mereka memiliki beberapa properti khusus yang tidak memiliki fungsi Numpy normal.Dan akhirnya, aturan yang sama berlaku untuk empat fungsi terkait minimum :
np.amin/np.min
,np.nanmin
;np.minimum
,np.fmin
.sumber
np.maximum
tidak hanya membandingkan elementwise tetapi juga membandingkan array elementwise dengan nilai tunggalsumber