np.maxjest tylko aliasem dla np.amax. Ta funkcja działa tylko na pojedynczej tablicy wejściowej i znajduje wartość maksymalnego elementu w całej tablicy (zwraca wartość skalarną). Alternatywnie, pobiera axisargument i znajdzie maksymalną wartość wzdłuż osi tablicy wejściowej (zwracając nową tablicę).
>>> 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])
Domyślnym zachowaniem programu np.maximumjest pobranie dwóch tablic i obliczenie ich maksimum pod względem elementów. Tutaj „kompatybilny” oznacza, że jedna macierz może być transmitowana do drugiej. Na przykład:
>>> b = np.array([3, 6, 1])
>>> c = np.array([4, 2, 9])
>>> np.maximum(b, c)
array([4, 6, 9])
Ale np.maximumjest również funkcją uniwersalną, co oznacza, że ma inne cechy i metody, które przydają się podczas pracy z wielowymiarowymi tablicami. Na przykład możesz obliczyć skumulowane maksimum na tablicy (lub określonej osi tablicy):
>>> d = np.array([2, 0, 3, -4, -2, 7, 9])
>>> np.maximum.accumulate(d)
array([2, 2, 3, 3, 3, 7, 9])
Nie jest to możliwe w przypadku np.max.
Możesz do pewnego stopnia np.maximumnaśladować, np.maxużywając np.maximum.reduce:
>>> np.maximum.reduce(d)
9
>>> np.max(d)
9
Podstawowe testy sugerują, że te dwa podejścia są porównywalne pod względem wydajności; i powinny być, tak jak w np.max()rzeczywistości wzywanp.maximum.reduce do wykonania obliczeń.
amaxtego samego (głównego) celu, jakmaximumnp. Znumpy.amax([a1, a2], axis=0)---, ale czy nie jest to tak zoptymalizowane pod kątem tego zachowania, jaknumpy.maximum? Podobnie, czy dodane dodatkinumpy.amax(np.axisParametr) uniemożliwiają mu bycie aufunc?