私はいくつかのデータ分析を行うためにPythonとNumpyを使用しています。3Dアレイでの効率的な反復?
私は大きな3Dマトリックス(NxNxN)を持っています。ここで、各セルは再びマトリックスです。今回は3x3マトリックスです。行列data
を呼び出すと、それは次のようになります。
data[N,N,N,3,3]
私はすべての3×3行列の固有値を見つける必要があり、そのために私はnumpyののeigvals
ルーチンを使用しますが、それは何をする年齢になります。今、私はかなりこれをやっています。
for i in range(N):
for j in range(N):
for k in range(N):
a = np.linalg.eigvals(data[i,j,k,:,:])
N = 256の場合、これには約1時間かかります。どのようにこれをより効率的にするためのアイデアですか?
ご意見ありがとうございました!
あなたはプロファイルされていますか?私はあなたが反復しているよりもずっと多くの時間をeigvalsに費やしていると思っています。 – matt
eigvalsは私のtimeitの計算では約3桁長くかかるので、反復を変更することは何にも影響を及ぼさないと思います。 – DSM