Python Numpy-如果数组在数组中
如果某个数组(或列表)在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()) 给予 您的问题似乎与以
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])