Python 比较两个不同大小的数组(A的组件在B中)
我想做的是有两个不同大小的数组 让 B行可以在A中,也可以不在Python 比较两个不同大小的数组(A的组件在B中),python,arrays,numpy,Python,Arrays,Numpy,我想做的是有两个不同大小的数组 让 B行可以在A中,也可以不在([1,3,1],[3,3,1]在A中) 我想从这些数组中比较两个数组以构造 数组“C”,由A中的B行组成 C = [[1,3,1], [3,3,1]] 我试过熊猫,但失败了。。任何想法都会很有帮助您可以从两个列表中获得常用元素: >>> 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]]
([1,3,1],[3,3,1]在A中)
我想从这些数组中比较两个数组以构造
数组“C”,由A中的B行组成
C = [[1,3,1], [3,3,1]]
我试过熊猫,但失败了。。任何想法都会很有帮助您可以从两个列表中获得常用元素:
>>> 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]]
使用
set.intersection
Ex:
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)}
输出:
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)}
或使用
过滤器:
print(list(filter(lambda x: x in A.tolist(), B.tolist())))
输出:
[[1, 3, 1], [3, 3, 1]]
简而言之,您需要两个列表中的公共元素。。正确??如果你将数组视为集合,这就是交集。哦,是的。。这是非常感谢你的共同点。我从别人早期的评论中得到了启示,就是这样!您可以删除A
中的if数据,因为它已经是A
中数据的@Keldorn:Yeah..真的。。如果数据在A
中,则无需添加,因为我仅在A
上循环。。修改答案。。