比较两个numpy数组是否相等的最简单的方法是什么(其中相等定义为:对于所有索引i,A = B iff A[i] == B[i])?
简单地使用==给我一个布尔数组:
>>> numpy.array([1,1,1]) == numpy.array([1,1,1])
array([ True, True, True], dtype=bool)
Run Code Online (Sandbox Code Playgroud)
我是否必须and使用此数组的元素来确定数组是否相等,还是有更简单的比较方法?
我不明白为什么还没有进行如此基本的优化:
In [1]: %timeit np.ones(10**6).any()
100 loops, best of 3: 7.32 ms per loop
In [2]: %timeit np.ones(10**7).any()
10 loops, best of 3: 59.7 ms per loop
Run Code Online (Sandbox Code Playgroud)
即使结论是第一项的证据,也扫描整个阵列.
例如,如果我有:
import numpy as np
A = np.array([[2,3,4],[5,6,7]])
Run Code Online (Sandbox Code Playgroud)
我想检查以下列表是否与数组包含的列表之一相同:
B = [2,3,4]
Run Code Online (Sandbox Code Playgroud)
我试过了
B in A #which returns True
Run Code Online (Sandbox Code Playgroud)
但是以下也返回True,这应该是假的:
B = [2,2,2]
B in A
Run Code Online (Sandbox Code Playgroud)