Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.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 两个数组之间的元素级in运算符_Python_Pandas_Numpy - Fatal编程技术网

Python 两个数组之间的元素级in运算符

Python 两个数组之间的元素级in运算符,python,pandas,numpy,Python,Pandas,Numpy,我想知道是否有一种很好且优雅的方法来比较两个数组中的元素 arr1 = [[1, 2], [3, 4], [5, 6]] àrr2 = [3, 5, 6] result = arr2 in arr1 现在我想要一个结果,比如: [False, False, True] 提前多谢 编辑:对不起,我的例子有点误导。我希望这是按元素执行的,这意味着我要检查arr2[0]是否在arr1[0]中,arr2[1]是否在arr2[1

我想知道是否有一种很好且优雅的方法来比较两个数组中的元素

arr1 = [[1, 2], 
        [3, 4], 
        [5, 6]]

àrr2 = [3,
        5, 
        6]

result = arr2 in arr1
现在我想要一个结果,比如:

[False, False, True]
提前多谢

编辑:对不起,我的例子有点误导。我希望这是按元素执行的,这意味着我要检查arr2[0]是否在arr1[0]中,arr2[1]是否在arr2[1]中,依此类推。。我更新了这个例子


另外,真正的数组要大得多,所以我想不使用循环来完成它

可以使用列表来完成

result = [arr2[i] in arr1[i] for i in range(len(arr1))]
那你有

[False, True, True]

您可以执行
打印([any(arr2中的x表示arr1中的x)表示arr1中的a])
您可以使用
操作符。包含

>>> arr1 = [[1, 2], [4, 5], [7, 8]]
>>> arr2 = [3, 4, 7]
>>> list(map(contains, arr1, arr2)
[False, True, True]
或者对于
numpy
使用
np.isin

>>> arr1 = np.array([[1, 2], [4, 5], [7, 8]])
>>> arr2 = np.array([3, 4, 7])
>>> np.isin(arr2, arr1).any(1)
[False  True  True]

IIUC,这样做很好:

In [16]: np.in1d(arr2, arr1)
Out[16]: array([False,  True,  True])
从文档中,此功能执行以下操作:

测试一维数组的每个元素是否也存在于第二个数组中

理解和
zip
这里有一个快速的方法:

for i in zip(arr2,arr1): 
   print(i[0] in i[1])

那个矮小的可能是错的。对于
arr2=np.array([3,7,4])
,将给我们一些可能不是OP期望的东西。据我所知,OP希望对照arr1中的每个元素检查arr2中的每个元素。我认为OP需要再次澄清。OP在他们的问题中所做的就是让选民失望:这个答案有什么错?如果我能改正错误,我愿意这样做。
for i in zip(arr2,arr1): 
   print(i[0] in i[1])