我想在另一個 2d np.array 的基礎上獲取 2d np.array 的所有行索引。
輸入:
all_elements = np.array([[1, 1], [2, 2], [3, 3]])
elements = np.array([[1, 1],[2, 2]])
就像是:
idx = np.row_idx(elements, all_elements, axis=0)
輸出:
[0, 1]
我一直在嘗試使用某些版本來做到這一點,np.where(np.isin(.....))但我無法讓它正常作業。Any1有什么建議嗎?
uj5u.com熱心網友回復:
IIUC,您可能想使用:
np.where((all_elements==elements[:,None]).all(2).any(0))[0]
輸出:array([0, 1])
解釋:
# compare all elements using broadcasting
(all_elements==elements[:,None])
array([[[ True, True],
[False, False],
[False, False]],
[[False, False],
[ True, True],
[False, False]]])
# all True on the last dimension
(all_elements==elements[:,None]).all(2)
array([[ True, False, False],
[False, True, False]])
# any match per first dimension
(all_elements==elements[:,None]).all(2).any(0)
array([ True, True, False])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/461241.html
