有没有办法一次性获取 NumPy 数组中多个元素的索引?
例如:
import numpy as np
a = np.array([1, 2, 4])
b = np.array([1, 1, 3, 2, 4])
我想找到a
中每个元素在b
中的索引,即:[0, 1, 3, 4]
.
请注意:
b
有重复的值,例如1
此处,方法例如 Getting the indices of several elements in a NumPy array at once 中的方法不起作用,因为它只能找到最左边或最右边的索引,而不是所有索引。因此,如果应用最左边的方法,则使用该方法将得到[0, 3, 4]
。- 我想遵守
a
中值的顺序,即结果中的第一个数字对应于a
中的第一个值,第二个数字代表a
中的第二个值,依此类推,例如[0, 1]
代表a
中的1
,[3]
代表2
code> 在a
中,而[4]
代表a
中的4
,所以答案的顺序是[0,1,3,4]
最佳答案
感谢我的 friend @rongkaizhang,我在这里发布了他的精彩答案。
np.where(b == np.expand_dims(a, axis=1))[1]
关于python - 一次获取 NumPy 数组中多个元素的索引(可以重复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61811499/