1

結合分布のエントロピーを計算するコードがあり、histogram2d を使用して、サイズ 20000 x 300 の行列 (およびそのような大規模なデータセット) のすべての列の **ペアワイズ ** 結合エントロピーを計算しています。つまり、n * n-1/2 計算

ほとんどの時間は、関節数の計算に費やされます。単純な cProfiling により、次のコストのかかる関数が明らかになります。

   histogram2d ->  histogramdd -> atleast_2d -> asarray -> numpy.core.multiarray.array
       87%            85%     |       40%          38%             39%
                              |-->  digitize
                                      10 %

np.digitize がカウントのほとんどの作業を行っていると思いました。しかし、かなりの時間が asarray のような他の関数に費やされているようです! 誰かがこれらの計算をより速く、より簡単な方法で行う方法を指摘できますか? (つまり、明らかに、C/C++ でヒストグラム関数を書くように指示していませんか?)

前もって感謝します。この質問は、以前に投稿した MI の計算に関連しています : numpy を使用してペアワイズ相互情報を計算する最適な方法

4

0 に答える 0