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 がインストールされており、Python の計算に NumPy と SciPy を使用しています。
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にかなり慣れていないので、ばかげたことをしたかもしれません。さらに情報を提供する必要がある場合はお知らせください。