2016-09-16 11 views
0

NxNのサイズのAがあり、Aがまばらで、Nが非常に大きいとしましょう。だから私たちは自然に保存したいのは、scipy sparse matrixです。Scipy/numpy:2つの高密度、1つの疎なドットプロダクト

また、NxKの密度の高い配列番号qがあります。ここで、Kは比較的小さくなります。

q.T * A * q*は行列乗算)を最も効率的に実行すると、KxKの結果が得られますか?

効率的に行うことができるのは効率的です(A * q)が、一度これを行うと、密度の高い配列が実現し、別の密な配列で乗算する必要があります。

q.T.dot(A.dot(q))より速く行う方法はありますか?

答えて

0

ですから、高密度アレイにおけるそれらのドット積結果の

(k,N) * (N,N) * (N,k) => (k,k) 

一つを持っています。その時には別の密度も高密度です。このような乗算を使うと、まばらなスピードをすぐに失うことになります。

qには0が多く、問題のスパース行列の性質を保持したい場合は、この乗算を行う前にqをスパースにします。

関連する問題