我试图看看我能够多快地通过numpy反转一个大矩阵,并面临一个相当奇怪的难题.测试代码非常简单:
文件invert.pyfrom 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发布它们的速度快得多.这对我来说毫无意义.有人可以解释为什么会发生这种情况吗?
谢谢,