1
私は2次元のNumPy ndarrayを持っています。ndarrayのすべてのargmaxを見つける方法
array([[ 0., 20., -2.],
[ 2., 1., 0.],
[ 4., 3., 20.]])
どのようにして最大要素のすべてのインデックスを取得できますか?だから私は出力配列([0,1]、[2,2])としてしたいと思います。
私は2次元のNumPy ndarrayを持っています。ndarrayのすべてのargmaxを見つける方法
array([[ 0., 20., -2.],
[ 2., 1., 0.],
[ 4., 3., 20.]])
どのようにして最大要素のすべてのインデックスを取得できますか?だから私は出力配列([0,1]、[2,2])としてしたいと思います。
使用np.argwhere
MAX-平等上マスク -
np.argwhere(a == a.max())
サンプル実行 - あなたは浮動小数点数を使用している場合
In [552]: a # Input array
Out[552]:
array([[ 0., 20., -2.],
[ 2., 1., 0.],
[ 4., 3., 20.]])
In [553]: a == a.max() # Max equality mask
Out[553]:
array([[False, True, False],
[False, False, False],
[False, False, True]], dtype=bool)
In [554]: np.argwhere(a == a.max()) # array of row, col indices of max-mask
Out[554]:
array([[0, 1],
[2, 2]])
を、あなたはそこにいくつかの許容値を使用する場合があります。だから、その考察では、デフォルト絶対値と相対許容値を持つnp.isclose
を使用することができます。これにより、以前のa == a.max()
部分が置き換えられます。
In [555]: np.isclose(a, a.max())
Out[555]:
array([[False, True, False],
[False, False, False],
[False, False, True]], dtype=bool)