gpt4 book ai didi

Python 特征值计算比我计算机上的 MATLAB 慢得多。为什么?

转载 作者:太空狗 更新时间:2023-10-29 17:44:22 25 4
gpt4 key购买 nike

我想使用 Python 2.6.5 计算大型矩阵(大约 1000x1000)的特征值。我一直做不到这么快。我还没有找到解决这个问题的任何其他话题。

当我运行时

a = rand(1000,1000);
tic;
for i =1:10
eig(a);
end
toc;

在 MATLAB 中大约需要 30 秒。 Python 中的类似测试需要 216 秒。使用 RPy 通过 R 运行它并没有明显加快计算速度。 Octave 中的测试耗时 93 秒。我对速度的差异感到有点困惑。

我在网上能找到的类似此类问题的唯一实例是 this ,已经有好几年了。该问题中的发帖人具有不同的 Python 目录结构(我将其归因于帖子的年代,尽管我可能会弄错),因此我没有足够的信心尝试按照通讯员发布的说明进行操作。

我的包管理器说我安装了 LAPACK,我正在使用 NumPy 和 SciPy 进行 Python 计算:

from numpy import *
from scipy import *
from numpy.linalg import *
import time

a = randn(1000,1000)
tic = time.clock()
for i in range(0,10):
eig(a)
toc = time.clock()
print "Elapsed time is ", toc-tic

我是 Python 的新手,所以我可能做了一些愚蠢的事情。如果我需要提供更多信息,请告诉我。

最佳答案

我认为您看到的是 Matlab 使用的英特尔数学核心函数库 (MKL) 与您的系统上的任何 LAPACK 实现(可能是 ATLAS?)scipy 链接的区别。您可以在 these benchmarks 中看到 MKL 的速度有多快.

我想如果您可以针对英特尔 MKL 库重建 Scipy,您将获得更好的性能。如果您使用的是 Windows,可以从 here 下载预制副本。 ,或者您可以考虑使用类似 Enthought Python Distribution 的东西。

关于Python 特征值计算比我计算机上的 MATLAB 慢得多。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6051678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com