Numpy加速的關鍵 -- 使用優化的方法


# -*- coding: utf-8 -*-
"""
Created on Sun Oct 23 20:05:57 2016

@author: zang
"""

import timeit

normal_py_sec = timeit.timeit('sum(x*x for x in xrange(1000))', number=10000)
naive_np_sec = timeit.timeit('sum(na*na)', setup="import numpy as np;na=np.arange(1000)",number=10000)
good_np_sec = timeit.timeit('na.dot(na)', setup="import numpy as np;na=np.arange(1000)",number=10000)


print "Normal Python: %f sec" % normal_py_sec
print "Naive Numpy: %f sec" % naive_np_sec
print "Good Numpy: %f sec" % good_np_sec

運行結果:

Normal Python: 0.630046 sec
Naive Numpy: 0.949492 sec
Good Numpy: 0.012041 sec

Naive Numpy只是將數組放入Numpy存儲,這時比Python標準列表花的時間還要長,
最快的是使用 np.dot 方法的時候,所以在優化的時候,

要時長考慮將數組元素的循環操作從Python中移到一些高度優化的Numpy或者Scipy**擴展函數**中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章