Python Numpy-如果数组在数组中

Python Numpy-如果数组在数组中,python,arrays,python-3.x,list,numpy,Python,Arrays,Python 3.x,List,Numpy,如果某个数组(或列表)在numpy数组中,我想用最有效的方法(最快的方法)进行检查。 但当我这么做的时候: import numpy a = numpy.array( [ [[1, 2]], [[3, 4]] ]) print([[3, 5]] in a) 它只比较第一个值并返回True 有人知道,我该怎么解决?谢谢。您可以在最后一行中添加tolist(): print([[3, 5]] in a.tolist()) 给予 您的问题似乎与以

如果某个数组(或列表)在numpy数组中,我想用最有效的方法(最快的方法)进行检查。 但当我这么做的时候:

import numpy

a = numpy.array(
    [
        [[1, 2]],
        [[3, 4]]
    ])

print([[3, 5]] in a)
它只比较第一个值并返回
True


有人知道,我该怎么解决?谢谢。

您可以在最后一行中添加
tolist()

print([[3, 5]] in a.tolist())
给予


您的问题似乎与以下问题重复:

在任何情况下,如果我理解正确,像第一个答案这样的东西应该可以做到:

import numpy

a = numpy.array(
    [
        [[1, 2]],
        [[3, 4]]
    ])

b = numpy.array([[3,5]])

print((b[:,None] == a).all(2).any(1))

哪些产出:

array([False,  True])

这回答了你的问题吗?谢谢你,这也帮了我。对于你的原始数据,只有矩阵
a
大还是查询矩阵也大?我不知道你的应用程序是什么,但我认为你可以去掉双括号,改用单括号。这很有效!谢谢你,但是真的很慢。我有一个大数据系列,需要1分钟以上的时间。有没有更快的解决方案?谢谢!这是可行的,它比joostblack的解决方案快,但在我的大数据系列中仍然需要很长时间。还有其他更快的解决方案吗?非常感谢。
array([False,  True])