让我们使用下面的代码来衡量性能。import numpy as npimport time
exec_time0 = []exec_time1 = []exec_time2 = []sizeOfArray = 5000numOfIterations = 200for 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.03031857Method: np.array_equal(A,B), 0.030025185Method: np.array_equiv(A,B), 0.030141515
根据上面的结果,numpy方法似乎比==运算符和all()方法的组合更快,并且通过比较numpy方法,最快的方法似乎是numpy.array_equal方法。