崩壊現実-全てはvirtualに収束する-

この日記について|本棚|ブックマーク|Wiki|ついったー部日記
Twitter用人工無脳http://twitter.com/ha_ma寄付
crochet(凍結中)http://d.hatena.ne.jp/showyou/20000101
twitter bot アンケートhttp://d.hatena.ne.jp/showyou/20091225/1261712029

2009-11-18

[]通常対psyco

Numpy速い!
http://chick.g.hatena.ne.jp/allegro/20091117/p1

とかあったんだけど、これpsyco使えばリスト内包でも早くなんじゃね?とか思って書いてみた。


といっても上の文章だとどう書きゃいいのかわからないので自分で書き直してみた。そのため行列じゃなかったりで多少意味合い違うかも。

import datetime
from pylab import arange
from math import sqrt
import random
import psyco
psyco.full()

dim = 100
def getdistsA(unitA, unitB):
    s = sum([(unitA[x] - unitB[x])  for x in arange(dim)])**2
    dist = sqrt(s)
    return dist

def main():
    tt0 = datetime.datetime.now()
    for i in arange(1000*10):
        A = [random.random()*10 for x in arange(dim)]
        B = [random.random()*10 for y in arange(dim)]
        d= getdistsA(A,B)

    tt1 = datetime.datetime.now()
    t0 = tt1 - tt0
    print t0,"sec"

main()

これで"import psyco"と"psyco.full"を

環境はMacBookAir(10.5.8), Python2.6.4。


劇的って訳じゃないけどある程度早くなる。


ちなみに最初main()を関数にせずにベタで書いてたんだけど、それだと2.7秒かかってた。

参考:http://d.hatena.ne.jp/pcl/20090408/p1

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/showyou/20091118/1258532408
筆者:Showyou http://www3.to/showyou
Connection: close