On 20/11/2016 20:46, DFS wrote:
import sys, time, numpy as np
loops=int(sys.argv[1])

x=np.array([1,2,3])
y=np.array([4,5,6])
start=time.clock()
for i in range(loops):
    np.cross(x,y)
print "Numpy, %s loops: %.2g seconds" %(loops,time.clock()-start)

x=[1,2,3]
y=[4,5,6]
z=[0,0,0]
start=time.clock()
for i in range(loops):
    z[0]=x[1]*y[2]-x[2]*y[1];
    z[1]=x[2]*y[0]-x[0]*y[2];
    z[2]=x[0]*y[1]-x[1]*y[0];
print "Calc, %s loops: %.2g seconds" %(loops,time.clock()-start)

I don't know why numpy is slow, but I can confirm similar results.

In fact if the workings are put into a function, then the difference is even more marked, with the normal calculation being 50% faster

Maybe numpy has extra overheads, and the arrays being operated on are very small, but even so, 30 times slower than CPython? (2.5 to 0.083 seconds.)

--
Bartc




--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to