在numpy中大量使用arryas时出现内存问题

时间:2020-01-11 12:01:04

标签: python arrays performance numpy

我正在计算大量观测值的多维点之间的加权平均距离。假设n = 2000个观测值,每个点的维数(特征数量)为d = 5000。实际的代码是

# A - the weights matrix (each row corresponds to a feature, each column corresponds to an observation)
# D - distance matrix between featires (all vs all)
AA = A[:, np.newaxis] * A[np.newaxis, :]
R = AA * D[:, :, np.newaxis]
S = R.sum(axis=(0, 1))

因此,所得数组S是n个浮点(字节大小:s = 8)数字的列表。 但是,在计算过程中,我们需要为AA分配内存,即n * d ^ 2 * s =大量...

我不想使用循环,因为该过程运行了多次(〜400),所以任何Python代码都会大大增加执行时间。

有什么想法吗?

0 个答案:

没有答案