3
この「問題」の背景は、私が大規模なPythonプロジェクトを最適化しようとしていることです。私は、プログラムをタイミング開始し、実行時間のほぼ50%がこの1と同様の計算に費やされていることに気づい:私はこれより早く作るための方法を見つけることを試みてきましたNumpy:効率的な行列計算A * xjここでxjはXの行jです
import numpy as np
# Example
A = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
X = np.random.multivariate_normal([0,0,0,0],np.eye(4),15000)
# Create a lambda function to use row based
F = lambda x: np.dot(A,x)
# Now calculating the value
answer = np.apply_along_axis(F, 1, X)
print answer.shape
、しかしに走り続けます壁。これは本当にこれを行うのに最適ですか?
うわー!これは驚異的なスピードアップです! 私はコードでこの答えにリンクします、ありがとう:) – Dammi
@piRSquaredねえ!さて、私は早くそれを見て、そこに作られた点は私には意味がある、私はそれがすでに好きだった:)私はあなたが繰り返しインデックスがたくさんある場合に役立つ 'np.take'について指摘することを考えていたと思います。その点は、@ hpauljによってリンクされているQ&Aのコメントにありました。だから、コメントと一緒にQ&Aのコメントでは、トピックについての議論をかなり包括的にしています。それらのことを研究するのはいい仕事です! – Divakar
@Divakarありがとう – piRSquared