我有两个NumPy数组。例如:
arr1 = np.array(['a','b','a','c','c','b','a','d'])
arr2 = np.array(['a','b','c','d'])
我的任务是创建
arr2
数组的索引列表,其中arr1 == arr2
。所需列表的长度应等于
len(arr1)
。例如,在我的情况下,正确答案是[0,1,0,2,2,1,0,3]
。做这件事的捷径是什么?是否可以在此处使用列表理解?
最佳答案
不确定numpy
是否具有此方法,但是这是一种内置方法,需要花费O(N)的时间:
In [9]: lookup = {v:i for i, v in enumerate(arr2)}
In [10]: [lookup[v] for v in arr1]
Out[10]: [0, 1, 0, 2, 2, 1, 0, 3]
关于python - NumPy数组交集的索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22203987/