N 매개 변수가있는 함수의 값이 들어있는 N 차원 행렬이 있습니다. 각 매개 변수에는 개별 값 수가 있습니다. 모든 매개 변수가 아닌 하나의 매개 변수에 대해 함수를 최대화해야하므로 최대화되지 않은 매개 변수의 값 수와 동일한 크기의 1 차원 벡터가됩니다. 또한 다른 매개 변수에 의해 어떤 값이 사용되는지를 저장해야합니다.축에 대해 numpy.argmax 요소의 인덱스 가져 오기
이렇게하려면 필자는 다른 축을 기준으로 numpy.max
을 반복 적용하여 원하는 부분을 찾기 위해 행렬의 차원을 줄였습니다. 마지막 벡터는 내가 버린 매개 변수에만 의존합니다.
하지만 최종 요소의 원래 색인 (다른 매개 변수에 의해 취해진 값에 대한 정보 포함)을 찾는 데 어려움이 있습니다. 나는 numpy.max
과 같은 방식으로 numpy.argmax
을 사용하고 있지만 원래 색인을 다시 얻을 수는 없습니다.
내가 노력하고있어의 예는 다음과 같습니다
는x = [[[1,2],[0,1]],[[3,4],[6,7]]]
args = np.argmax(x, 0)
이 원래 내의 요소 (2,1,4,7)를 argmax 선택하는 것을 의미
[[1 1]
[1 1]]
을 반환 매트릭스. 그러나 어떻게 그들의 지수를 얻는가? 나는 unravel_index
을 시도했다. args
을 매트릭스 x
의 인덱스로 사용했다. numpy에서 인덱스로 성공하지 못한 함수들이있다.
입력 행렬이 내부에 동일한 값을 가질 수 있으므로 numpy.where
을 사용하면 해결책이되지 않으므로 다른 원본 값을 식별 할 수 없습니다.