让我们用衡量性能以下一段代码。
import numpy as np
import time
exec_time0 = []
exec_time1 = []
exec_time2 = []
sizeOfArray = 5000
numOfIterations = 200
for i in xrange(numOfIterations):
A = np.random.randint(0,255,(sizeOfArray,sizeOfArray))
B = np.random.randint(0,255,(sizeOfArray,sizeOfArray))
a = time.clock()
res = (A==B).all()
b = time.clock()
exec_time0.append(b - a)
a = time.clock()
res = np.array_equal(A,B)
b = time.clock()
exec_time1.append(b - a)
a = time.clock()
res = np.array_equiv(A,B)
b = time.clock()
exec_time2.append(b - a)
print 'Method: (A==B).all(), ', np.mean(exec_time0)
print 'Method: np.array_equal(A,B),', np.mean(exec_time1)
print 'Method: np.array_equiv(A,B),', np.mean(exec_time2)
输出
Method: (A==B).all(), 0.03031857
Method: np.array_equal(A,B), 0.030025185
Method: np.array_equiv(A,B), 0.030141515
根据以上的结果,所述方法numpy的似乎是比==操作者的组合和所有()方法和通过快比较numpy方法最快似乎是numpy.array_equal方法。