16

2D numpy配列の配列全体の最大値を含む行または列を見つけるにはどうすればよいですか?

4

5 に答える 5

21

どちらか一方だけが必要な場合:

np.argmax(np.max(x, axis=1))

カラム用、および

np.argmax(np.max(x, axis=0))

行のために。

于 2012-07-04T16:16:02.830 に答える
19

を使用できますnp.where(x == np.max(x))

例えば:

>>> x = np.array([[1,2,3],[2,3,4],[1,3,1]])
>>> x
array([[1, 2, 3],
       [2, 3, 4],
       [1, 3, 1]])
>>> np.where(x == np.max(x))
(array([1]), array([2]))

最初の値は行番号、2番目の値は列番号です。

于 2012-07-04T15:58:16.970 に答える
19

np.argmaxと一緒にnp.unravel_index使用できます

x = np.random.random((5,5))
print np.unravel_index(np.argmax(x), x.shape)
于 2012-07-04T16:07:14.447 に答える
3

np.argmaxフラット化された配列の(最初の)最大要素のインデックスを返すだけです。したがって、配列の形状がわかっている場合(これを行う場合)、行/列のインデックスを簡単に見つけることができます。

A = np.array([5, 6, 1], [2, 0, 8], [4, 9, 3])
am = A.argmax()
c_idx = am % A.shape[1]
r_idx = am // A.shape[1]
于 2017-01-01T19:06:10.127 に答える
-1

直接使用できますnp.argmax()

この例は、公式ドキュメントからコピーされています。

ここに画像の説明を入力してください

axis = 0各列の最大値をaxis = 1見つけることですが、各行の最大値を見つけることです。戻り値は列/行のインデックスです。

于 2019-01-08T04:03:36.053 に答える