# -*- coding: utf-8 -*-
import scipy.weave as weave
import numpy as np
import time
def my_sum(a):
n=int(len(a))
code="""
int i;
double counter;
counter =0;
for(i=0;i
counter=counter+a(i);
}
return_val=counter;
"""
err=weave.inline(
code,['a','n'],
type_converters=weave.converters.blitz,
compiler="gcc"
)
return err
a = np.arange(0, 10000000, 1.0)
my_sum(a)
start = time.clock()
for i in xrange(100):
my_sum(a)
print "my_sum:", (time.clock() - start) / 100.0
start = time.clock()
for i in xrange(100):
np.sum( a )
print "np.sum:", (time.clock() - start) / 100.0
start = time.clock()
print sum(a)
print "sum:", time.clock() - start
×îºóÊä³öÊÇÕâ¸ö£º
my_sum: 0.0329930144753
np.sum: 0.029593931631
4.9999995e+13
sum: 6.02684559071
×îºóÒ»²½sumµÄʱºòÕâ¸ö4.9999995e+13ÊÇÔõô¶à³öÀ´µÄ£¿
ÓõÄÊÇepdµÄpython(2.6.6)
----------ÏÖÔÚûÎÊÌâÁË-----
[ Last edited by ÈñÀûµÄË鯬 on 2011-1-4 at 11:20 ] |