development

numpy max 대 amax 대 최대

big-blog 2020. 8. 25. 20:06
반응형

numpy max 대 amax 대 최대


numpy에는 동일한 작업에 사용할 수있는 것처럼 보이는 세 가지 다른 기능이 numpy.maximum있습니다. , 요소별로 사용할 수있는 반면 numpy.maxnumpy.amax특정 축 또는 모든 요소에서 사용할 수 있습니다. 왜 그 이상이 numpy.max있습니까? 성능에 약간의 미묘함이 있습니까?

(유사 대한 minaminminimum)


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.maximumIS 취할 배열과 요소 현명한 최대 값을 계산한다. 여기서 '호환'이란 하나의 어레이가 다른 어레이로 브로드 캐스트 될 수 있음을 의미합니다. 예를 들면 :

>>> 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.amaxnp.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.maxNaN을 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.maximumNaN을 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

반응형