Numpy操作看起来很慢

时间:2014-03-07 23:00:45

标签: python numpy

我试图看看我能通过numpy反转大型矩阵的速度有多快,并且面临一个相当奇怪的难题。测试代码非常简单:

文件invert.py
from numpy.linalg import inv
import time

def invert():
 a=np.random.rand(10000,10000)
 s = time.time()
 b=inv(a)
 print time.time()-s

我正在使用Windows机器,以便我可以通过Windows命令提示符或cygwin之类的东西运行此测试。在任何一种情况下,我使用的命令完全相同:

python
import invert
invert.invert()

然而,当我从win命令提示符发出命令时,我得到的经过时间约为30秒。当我通过cygwin做到这一点时,我得到的时间约为1700秒!我也试图在集群节点(linux)上运行相同的测试并获得非常慢的结果(~1600秒)。我对此感到非常困惑。从命令提示符发出相同的python命令似乎比通过cygwin发布它们的速度快得多。这对我来说毫无意义。有人可以解释为什么会发生这种情况吗?

谢谢,

1 个答案:

答案 0 :(得分:1)

感谢您的回答。虽然我还没有完全弄明白为什么会发生这种情况,但克雷格的回答很有帮助。当我从win cmd给出numpy.show_config()命令时,我得到有关blas和lapack库的信息。但是,当我从cygwin发出相同的命令时,我没有得到这些信息。我只能假设通过cygwin运行python在某种程度上不知道库的位置。