ホームページ > バックエンド開発 > Python チュートリアル > NumPy配列内の複数の最大値のインデックスを見つけるにはどうすればよいですか?

NumPy配列内の複数の最大値のインデックスを見つけるにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-29 18:08:14
オリジナル
305 人が閲覧しました

How to Find the Indices of Multiple Maximum Values in a NumPy Array?

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:

  • argpartition: O(n) (最悪の場合) を使用します。 case
  • argsort: O(n log n)
  • 複合アプローチ (ソートされたインデックス): O(n k log k) 上位 k 個のソートされた要素

以上がNumPy配列内の複数の最大値のインデックスを見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート