ProgramingTip

다차원 numpy 배열에서 가장 큰 항목의 위치 가져 오기

bestdevel 2020. 11. 13. 23:51
반응형

다차원 numpy 배열에서 가장 큰 항목의 위치 가져 오기


다차원 numpy 배열에서 가장 큰 항목의 위치를 ​​어디에 있습니까?


argmax()방법은 도움이 될 것입니다.

최신 정보

(댓글을 읽은 후)이 argmax()방법이 다차원 배열에서 작동 할 생각합니다 . 링크 된 문서는 이에 대한 예를 제공합니다.

>>> a = array([[10,50,30],[60,20,40]])
>>> maxindex = a.argmax()
>>> maxindex
3

업데이트 2

( KennyTM 의 의견에 감사드립니다 ) unravel_index(a.argmax(), a.shape)디자인을 튜플로 가져 오는 데 사용할 수 있습니다 .

>>> from numpy import unravel_index
>>> unravel_index(a.argmax(), a.shape)
(1, 0)

(편집) 삭제 된 이전 답변을 참조했습니다 . 그리고 받아 들인 대답은 내 뒤를 따랐습니다. 나는 그것이 argmax내 대답보다 낫다는 데 동의합니다 .

이렇게하는 것이 더 판독 할 수있는 것입니다.

numpy.nonzero(a.max() == a)
(array([1]), array([0]))

또는,

numpy.argwhere(a.max() == a)

(2d에서만 작동하는) 함수를 사용할 수 있습니다.

def argmax_2d(matrix):
    maxN = np.argmax(matrix)
    (xD,yD) = matrix.shape
    if maxN >= xD:
        x = maxN//xD
        y = maxN % xD
    else:
        y = maxN
        x = 0
    return (x,y)

참고 URL : https://stackoverflow.com/questions/3584243/get-the-position-of-the-biggest-item-in-a-multi-dimensional-numpy-array

반응형