np.max
ist nur ein Alias für np.amax
. Diese Funktion funktioniert nur für ein einzelnes Eingabearray und ermittelt den Wert des maximalen Elements in diesem gesamten Array (Rückgabe eines Skalars). Alternativ wird ein axis
Argument verwendet und der Maximalwert entlang einer Achse des Eingabearrays ermittelt (wobei ein neues Array zurückgegeben wird).
>>> 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])
Das Standardverhalten von np.maximum
besteht darin, zwei Arrays zu verwenden und ihr elementweises Maximum zu berechnen. Hier bedeutet "kompatibel", dass ein Array an das andere gesendet werden kann. Beispielsweise:
>>> b = np.array([3, 6, 1])
>>> c = np.array([4, 2, 9])
>>> np.maximum(b, c)
array([4, 6, 9])
Es np.maximum
ist aber auch eine universelle Funktion, was bedeutet, dass es andere Funktionen und Methoden hat, die bei der Arbeit mit mehrdimensionalen Arrays nützlich sind. Beispielsweise können Sie das kumulative Maximum über ein Array (oder eine bestimmte Achse des Arrays) berechnen:
>>> d = np.array([2, 0, 3, -4, -2, 7, 9])
>>> np.maximum.accumulate(d)
array([2, 2, 3, 3, 3, 7, 9])
Dies ist mit nicht möglich np.max
.
Sie können bis zu einem gewissen Grad np.maximum
nachahmen np.max
, wenn Sie Folgendes verwenden np.maximum.reduce
:
>>> np.maximum.reduce(d)
9
>>> np.max(d)
9
Grundlegende Tests legen nahe, dass die beiden Ansätze in ihrer Leistung vergleichbar sind. und sie sollten es sein, wie np.max()
tatsächlich Aufrufenp.maximum.reduce
zur Berechnung.
amax
für den gleichen (Wurzel-) Zweck verwendenmaximum
, dh mitnumpy.amax([a1, a2], axis=0)
---, aber ist dies nicht so optimiert für dieses Verhalten wienumpy.maximum
? In ähnlicher Weise schließen die hinzugefügten Feinheiten vonnumpy.amax
(z. B. demaxis
Parameter) aus, dass es ein istufunc
?