很抱歉有这么多问题。我在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