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

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

Linda Hamilton
リリース: 2024-12-03 07:24:13
オリジナル
814 人が閲覧しました

How to Efficiently Find Row Indexes of Multiple Values in NumPy Arrays?

NumPy 配列内の複数の値の行インデックスの検索

配列 X とターゲット行のセット search_values が与えられた場合、タスクは対応する行インデックスを取得することです。この問題は、さまざまな NumPy 関数を使用して効率的に解決できます。

アプローチ 1: ブロードキャスト

ブロードキャストを使用した簡単なアプローチ:

np.where((X==searched_values[:,None]).all(-1))[1]
ログイン後にコピー

アプローチ 2: メモリ効率の高い変換

メモリ効率を高めるために、各行を一意の線形インデックスに変換して使用します。 np.in1d:

dims = X.max(0)+1
out = np.where(np.in1d(np.ravel_multi_index(X.T,dims),\
                    np.ravel_multi_index(searched_values.T,dims)))[0]
ログイン後にコピー

アプローチ 3: メモリ効率の高い検索

np.searchsorted を使用した別のメモリ効率の高いソリューション:

dims = X.max(0)+1
X1D = np.ravel_multi_index(X.T,dims)
searched_valuesID = np.ravel_multi_index(searched_values.T,dims)
sidx = X1D.argsort()
out = sidx[np.searchsorted(X1D,searched_valuesID,sorter=sidx)]
ログイン後にコピー

注: このアプローチでは、searched_values の各行に一致があると想定しています。 ×.

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

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