numpy max 대 amax 대 최대
numpy에는 동일한 작업에 사용할 수있는 것처럼 보이는 세 가지 다른 기능이 numpy.maximum
있습니다. 단 , 요소별로 만 사용할 수있는 반면 numpy.max
및 numpy.amax
특정 축 또는 모든 요소에서 사용할 수 있습니다. 왜 그 이상이 numpy.max
있습니까? 성능에 약간의 미묘함이 있습니까?
(유사 대한 min
대 amin
대 minimum
)
np.max
의 별칭입니다 np.amax
. 이 함수는 단일 입력 배열 에서만 작동 하며 전체 배열에서 최대 요소의 값을 찾습니다 (스칼라 반환). 또는 axis
인수를 취하고 입력 배열의 축을 따라 최대 값을 찾습니다 (새 배열 반환).
>>> 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])
의 기본 동작 np.maximum
IS 취할 두 배열과 요소 현명한 최대 값을 계산한다. 여기서 '호환'이란 하나의 어레이가 다른 어레이로 브로드 캐스트 될 수 있음을 의미합니다. 예를 들면 :
>>> b = np.array([3, 6, 1])
>>> c = np.array([4, 2, 9])
>>> np.maximum(b, c)
array([4, 6, 9])
그러나 다차원 배열로 작업 할 때 유용한 다른 기능과 방법이 있음을 의미 np.maximum
하는 범용 함수 이기도 합니다. 예를 들어 배열 (또는 배열의 특정 축)에 대한 누적 최대 값을 계산할 수 있습니다.
>>> d = np.array([2, 0, 3, -4, -2, 7, 9])
>>> np.maximum.accumulate(d)
array([2, 2, 3, 3, 3, 7, 9])
에서는 불가능합니다 np.max
.
다음을 사용할 때 어느 정도 np.maximum
모방 np.max
할 수 있습니다 np.maximum.reduce
.
>>> np.maximum.reduce(d)
9
>>> np.max(d)
9
기본 테스트에 따르면 두 가지 접근 방식이 성능면에서 비슷합니다. 로 그들은,해야 np.max()
실제로 호출np.maximum.reduce
계산을 할 수 있습니다.
왜 np.maximum
다른지 이미 언급 했습니다. 두 배열 사이의 요소 별 최대 값 인 배열을 반환합니다.
관해서 np.amax
과 np.max
: 그들은 모두 동일한 통화 기능 - np.max
단지 별칭 np.amax
, 이들은 어레이의 모든 요소의 최대 값을 계산 또는 어레이의 축을 따라.
In [1]: import numpy as np
In [2]: np.amax
Out[2]: <function numpy.core.fromnumeric.amax>
In [3]: np.max
Out[3]: <function numpy.core.fromnumeric.amax>
완전성을 위해 Numpy에는 최대 4 개의 관련 기능이 있습니다. 두 가지 범주로 나뉩니다.
np.amax/np.max
,np.nanmax
: 단일 어레이 주문 통계 용- 및
np.maximum
,np.fmax
: 두 배열 의 요소 별 비교
I. 를 들어 하나의 배열 순서 통계
NaN 전파자 np.amax/np.max
및 NaN 무지 대응 자 np.nanmax
.
np.max
의 별칭np.amax
일 뿐이 므로 하나의 함수로 간주됩니다.>>> np.max.__name__ 'amax' >>> np.max is np.amax True
np.max
NaN을np.nanmax
무시하고 NaN을 전파 합니다.>>> np.max([np.nan, 3.14, -1]) nan >>> np.nanmax([np.nan, 3.14, -1]) 3.14
II. 두 배열 의 요소 별 비교
NaN 전파자 np.maximum
및 해당 NaN 무지 대응 np.fmax
.
두 함수 모두 비교할 처음 두 위치 인수로 두 개의 배열이 필요합니다.
# x1 and x2 must be the same shape or can be broadcast np.maximum(x1, x2, /, ...); np.fmax(x1, x2, /, ...)
np.maximum
NaN을np.fmax
무시하고 NaN을 전파 합니다.>>> np.maximum([np.nan, 3.14, 0], [np.NINF, np.nan, 2.72]) array([ nan, nan, 2.72]) >>> np.fmax([np.nan, 3.14, 0], [np.NINF, np.nan, 2.72]) array([-inf, 3.14, 2.72])
요소 별 함수는
np.ufunc
( Universal Function ) 입니다. 즉, 일반 Numpy 함수에는없는 몇 가지 특별한 속성이 있습니다.>>> type(np.maximum) <class 'numpy.ufunc'> >>> type(np.fmax) <class 'numpy.ufunc'> >>> #---------------# >>> type(np.max) <class 'function'> >>> type(np.nanmax) <class 'function'>
마지막으로 동일한 규칙이 4 개의 최소 관련 기능에 적용됩니다 .
np.amin/np.min
,np.nanmin
;- 및
np.minimum
,np.fmin
.
참고 URL : https://stackoverflow.com/questions/33569668/numpy-max-vs-amax-vs-maximum
'development' 카테고리의 다른 글
컬렉션에 AddRange (0) | 2020.08.25 |
---|---|
부작용에 대한 목록 이해력을 사용하는 것이 Pythonic입니까? (0) | 2020.08.25 |
Linux의 디렉토리 아래 새로 생성 된 파일 및 하위 디렉토리에 대한 기본 권한을 설정 하시겠습니까? (0) | 2020.08.25 |
"%. * s"는 printf에서 무엇을 의미합니까? (0) | 2020.08.25 |
사용자가 passport.js로 로그인했는지 어떻게 알 수 있습니까? (0) | 2020.08.24 |