Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 比较两个不同大小的数组(A的组件在B中)_Python_Arrays_Numpy - Fatal编程技术网

Python 比较两个不同大小的数组(A的组件在B中)

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]]

我想做的是有两个不同大小的数组 让

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]]
>>> 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
上循环。。修改答案。。