NumPy 配列内の複数の最大値のインデックスの取得
NumPy 配列は、最大要素のインデックスを見つけるための np.argmax 関数を提供します。ただし、N 個の最大値のインデックスが必要な場合は、次の解決策を検討してください:
最近の NumPy バージョン:
NumPy バージョン 1.8 以降では、argpartition 関数が提供します。効率的な方法:
import numpy as np a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0]) # Get top 4 indices n_max = 4 ind = np.argpartition(a, -n_max)[-n_max:] # Retrieve top 4 values top_max = a[ind]
古いNumPy バージョン:
NumPy 1.8 より前では、次のように argsort 関数を使用できます:
# Get top 4 indices n_max = 4 ind = np.argsort(a)[-n_max:] # Retrieve top 4 values top_max = a[ind]
インデックスの並べ替え:
デフォルトでは、argpartition はソートされていないインデックスを返します。ソートされたインデックスが必要な場合は、
ind[np.argsort(a[ind])]
Time Complexity:
以上がNumPy配列内の複数の最大値のインデックスを見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。