給定一個數組 X 和一個數組 searched_values,任務是找到 X 中與 searched_values 中相應行匹配的行索引。
np.where((X==searched_values[:,None]).all(-1))[1]
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.ravel_multi_index 將 n 維索引的 2D 陣列轉換為線性索引等價物。例如,給定 X 和 dims,它將計算:
np.ravel_multi_index(X.T,dims)
結果為 [30, 66, 61, 24, 41],其中每個數字表示 X 中相應行的線性索引。
為np.ravel_multi_index 選擇維度以產生唯一線性索引時,請考慮以下事項:
對於給定的 X:
dims = X.max(0)+1 # [10, 7]
這將建立一個至少具有指定維度的網格,確保唯一的線性索引。
以上是如何在 NumPy 數組中高效查找匹配值的行索引?的詳細內容。更多資訊請關注PHP中文網其他相關文章!