使用 numpy 高效处理大矩阵

问题描述 投票:0回答:1

我正在尝试在一个相当大的矩阵上运行一些简单的计算;粗略地说,200Kx200K 或实数。我需要获得:

results = np.abs(mtx).sum(dim='rows')

不幸的是,代码甚至在服务器上也会崩溃,分配大量内存。 处理这个问题的有效方法是什么?

python numpy
1个回答
0
投票

我认为

np.abs
返回第二个矩阵,因此它想要获得更多内存并失败。为了解决这个问题,我们需要按行进行迭代。

我希望这会起作用:

matrix_size = 10_000
mtx = np.random.randint(0, 100, size=(matrix_size, matrix_size))

sums = np.zeros(matrix_size)
for i in range(matrix_size):
    sums[i] = np.sum(np.abs(mtx[:, i]))
    # or mtx[i, :] for .sum(axis=1)
    # not sure, please check this index for your case

print(sums)

我也尝试制作两个

for
循环,但速度非常慢。

© www.soinside.com 2019 - 2024. All rights reserved.