我有一个代码可以计算联合分布的熵,并且正在使用 histogram2d 计算 **pairwise ** 大小为 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 的计算有关: Optimal way to calculate pairwisemutual information using numpy