配列 X とターゲット行のセット search_values が与えられた場合、タスクは対応する行インデックスを取得することです。この問題は、さまざまな NumPy 関数を使用して効率的に解決できます。
ブロードキャストを使用した簡単なアプローチ:
np.where((X==searched_values[:,None]).all(-1))[1]
メモリ効率を高めるために、各行を一意の線形インデックスに変換して使用します。 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]
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 サイトの他の関連記事を参照してください。