numpy の argmin 関数のドキュメントを読むのに少し混乱しています。それは仕事をするべきであるように見えます:
これを読んで
軸に沿った最小値のインデックスを返します。
私はそれを仮定するかもしれません
np.argmin([5, 3, 2, 1, 1, 1, 6, 1])
すべてのインデックスの配列を返します:[3, 4, 5, 7]
しかし、これの代わりに のみを返します3
。問題はどこにありますか、または結果を得るにはどうすればよいですか?
numpy の argmin 関数のドキュメントを読むのに少し混乱しています。それは仕事をするべきであるように見えます:
これを読んで
軸に沿った最小値のインデックスを返します。
私はそれを仮定するかもしれません
np.argmin([5, 3, 2, 1, 1, 1, 6, 1])
すべてのインデックスの配列を返します:[3, 4, 5, 7]
しかし、これの代わりに のみを返します3
。問題はどこにありますか、または結果を得るにはどうすればよいですか?
多次元配列について考えると、そのドキュメントはより理にかなっています。
>>> x = numpy.array([[0, 1],
... [3, 2]])
>>> x.argmin(axis=0)
array([0, 0])
>>> x.argmin(axis=1)
array([0, 1])
軸argmin
が指定されている場合、指定された軸に沿って 1 次元のサブ配列を取得し、各サブ配列の最小値の最初のインデックスを返します。単一の最小値のすべてのインデックスを返すわけではありません。
最小値のすべてのインデックスを取得するには、次のようにします。
numpy.where(x == x.min())
のドキュメントを参照してくださいnumpy.argmax
( のドキュメントで参照されていますnumpy.argmin
):
最大値が複数回出現する場合、最初の出現に対応するインデックスが返されます。
ドキュメントの言い回し (「インデックス」ではなく「インデックス」) は、 が提供される場合の多次元のケースを指しaxis
ます。
だから、あなたはそれを行うことはできませんnp.argmin
。代わりに、これは機能します:
np.where(arr == arr.min())