【发布时间】:2015-03-10 05:30:24
【问题描述】:
我有一个巨大的 numpy ndarray(称为 mat,形状为 700000 x 6000),我想通过列求和并找到非零索引。
我想这样总结:
x = np.sum(mat[:,y], axis=1)
indices = np.nonzero(x)
但是第一行立即给了我一个即时的内存错误。有没有一种方法可以让我使用 np.sum 并以另一种方式进行计算?
【问题讨论】:
-
假设
y是一个整数np.sum(mat[:,y], axis=1)产生一个ValueError,因为mat[:,y]的形状为(7000000,)。你是在做mat[:, :y]吗(切到yth 列)? -
假设您的矩阵包含标准浮点数,那么纯矩阵数据将占用将近 32 GB 的内存。根据您所使用的硬件,完全在内存中对这种大小的数据集进行操作可能不是一个好主意。
标签: python numpy matrix scipy multidimensional-array