在python numpy中,如果我用10^6长度随机生成的list生成numpy array,那么生成耗时0.1s, 但是得到这个array的mean只需要init的2%的时间。 而我自己implement的array得到mean需要十几秒。
所以numpy的array十分黑科技是应为:
1)用底层代码太厉害?
2)init的时候partially compute了某一些中间量?(应为求mean的时间比access慢,比O(n)快 )
如果是2的话能否讲一下大概思路(不需要用python O(n)就能得mean)?
感激不禁!
a=[];s=0;n=1000000
from time import*
from math import*
from random import*
st=clock()
for i in range(n):
a.append(random())
for i in a:s=s+i
et=clock()
print "mean=",s/n,"time=",et-st,"seconds"
已抢66873个
抢已抢39274个
抢已抢21718个
抢已抢2758个
抢已抢2796个
抢已抢19354个
抢