我不知道为什么每个匹配的子列表都有重复的索引



我想做的是用最快的方法在特定的超级列表中标记子列表的每个索引。

import numpy as np
l1 = [['a', 'b'], ['c', 'd'], ['a', 'b'], ['a', 'b']]
l2 = ['a', 'b']
a = np.array(l1)
b = np.array(l2)
x = np.where(a == b)[0]
print(x)

输出:

[0 0 2 2 3 3]

因为您只得到输出[0]的第一个元素,a是2D数组,并且输出有两个索引"用于行和列位置">

import numpy as np
l1 = [['a', 'b'], ['c', 'd'], ['a', 'b'], ['a', 'b']]
l2 = ['a', 'b']
a = np.array(l1)
b = np.array(l2)
x,y = np.where(a == b)
a[x,y]
array(['a', 'b', 'a', 'b', 'a', 'b'], dtype='<U1')

如果你想按阵列比较它们,你应该循环通过a

x = np.where([np.array_equal(i,b) for i in a])[0]
x
array([0, 2, 3], dtype=int64)

最新更新