多次元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)
unravel_index(a.argmax(), a.shape)
インデックスをタプルとして取得するために使用します。
(編集)削除された古い回答を参照していました。そして、受け入れられた答えは私の後に来ました。私はそれargmax
が私の答えよりも優れていることに同意します。
このようにする方が読みやすく、直感的ではないでしょうか。
numpy.nonzero(a.max() == a)
(array([1]), array([0]))
または、
numpy.argwhere(a.max() == a)
別の方法は、numpy
配列をに変更し、メソッドlist
を使用することです。max
index
List = np.array([34, 7, 33, 10, 89, 22, -5])
_max = List.tolist().index(max(List))
_max
>>> 4