Numpy操作看起来很慢

use*_*390 6 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
Run Code Online (Sandbox Code Playgroud)

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

python
import invert
invert.invert()
Run Code Online (Sandbox Code Playgroud)

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

谢谢,

use*_*390 1

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