我想做的是有两个不同大小的数组 让
A = [[1,3,1],[2,4,1],[3,3,1]]
B = [[1,3,1],[2,5,1],[2,3,1],[3,3,1],[5,5,1]]
B的行可能会在A中( [1,3,1], [3,3,1] is in A )
我要从这些数组中做的是比较两个数组以构造 数组“ C”,它由A中的B行组成。
C = [[1,3,1], [3,3,1]]
我尝试过pandas.isin,但是失败了。任何想法都会很有帮助
答案 0 :(得分:2)
使用set.intersection
例如:
A = [[1,3,1],[2,4,1],[3,3,1]]
B = [[1,3,1],[2,5,1],[2,3,1],[3,3,1],[5,5,1]]
A = map(tuple, A)
B = map(tuple, B)
print(set(A).intersection(set(B)))
输出:
{(3, 3, 1), (1, 3, 1)}
答案 1 :(得分:0)
您可以从两个列表中获得共同的元素:
>>> A = [[1,3,1],[2,4,1],[3,3,1]]
>>> B = [[1,3,1],[2,5,1],[2,3,1],[3,3,1],[5,5,1]]
>>> print([data for data in A if data in B])
[[1, 3, 1], [3, 3, 1]]
答案 2 :(得分:0)
或使用filter
:
print(list(filter(lambda x: x in A.tolist(), B.tolist())))
输出:
[[1, 3, 1], [3, 3, 1]]