很抱歉有這麼多問題。我在Intel Core 2 Duo上運行Mac OSX 10.6。我正在爲我的研究運行一些基準,並且遇到了令我感到困惑的另一件事。Numpy dot產品非常緩慢地使用整數
如果我運行
python -mtimeit -s 'import numpy as np; a = np.random.randn(1e3,1e3)' 'np.dot(a,a)'
我得到以下輸出:10 loops, best of 3: 142 msec per loop
但是,如果我跑
python -mtimeit -s 'import numpy as np; a = np.random.randint(10,size=1e6).reshape(1e3,1e3)' 'np.dot(a,a)'
我得到以下輸出:10 loops, best of 3: 7.57 sec per loop
然後,我跑到
python -mtimeit -s 'import numpy as np; a = np.random.randn(1e3,1e3)' 'a*a'
然後
python -mtimeit -s 'import numpy as np; a = np.random.randint(10,size=1e6).reshape(1e3,1e3)' 'a*a'
兩個跑,每圈約7.6毫秒,所以它不是乘法。添加也有類似的速度,所以這些都不應該影響點積,對吧? 那麼爲什麼使用ints計算點積要比使用浮點數慢50倍呢?
我也一樣在Linux上 - 我得到float64約3秒和INT3210秒(這是一臺老機器)。不是50的因素,但仍然很奇怪。 – Luke 2012-08-08 01:37:51