我有两个形状为(N1,2)和(N2,2)的数组。
import numpy as np
arr1 = np.array([[0, 1], [0, 2], [0, 3], [1, 2], [1, 3], [2, 3]])
arr2 = np.array([[0, 2], [0, 3], [1, 2], [1, 2]])
我知道arr1中的每个元素都是唯一的。arr2中的元素不一定是唯一的,而且arr2中的每个元素在arr1中正好出现一次。
我想做的是,我想得到一个shape(N2,1)的指数数组,它只是给我提供arr2中的元素在arr1中的位置。所以在这种情况下,我希望输出的结果是
idxs = np.array([1, 2, 3, 3])
所以换句话说,我正在寻找一个类似于np.where的东西,它可以用于多维数组,但是np.where没有轴关键字。
我可以使用类似于
idxs = []
for element in arr2:
for i, other_element in enumerate(arr1):
if (element == other_element).all():
idxs.append(i)
break
但这是丑陋的,我打赌有一个整洁的numpy解决方案。