我有两个数组,我已经找到了如何使用np.setxor1d(a,b)
识别互斥元素。例如:
a = np.random.randint(11, size=10) #first array
b = np.random.randint(11, size=10) #second array
ex = np.setxor1d(a,b) #mutually exclusive array
a
Out[1]: [1, 5, 3, 7, 6, 0, 10, 10, 0, 9]
b
Out[2]: [1, 9, 8, 6, 3, 5, 8, 0, 3, 10]
ex
Out[3]: [7, 8]
现在,我试图找出如何获取ex
和a
的独占数组b
的元素的索引。以a_mutex_ind
和b_mutex_ind
等方式。有没有人知道一个聪明的方法来做这个没有for循环?
谢谢!
答案 0 :(得分:1)
>>> x = np.setxor1d(a, b)
>>> i, = np.nonzero(np.in1d(a, x))
>>> i
array([3])
>>> a[i]
array([7])
,同样适用于b
:
>>> j, = np.nonzero(np.in1d(b, x))
>>> j
array([2, 6])
>>> b[j]
array([8, 8])