gpt4 book ai didi

python / NumPy : Efficiently store non-sparse large symmetric arrays?

转载 作者:太空宇宙 更新时间:2023-11-03 15:48:33 24 4
gpt4 key购买 nike

我正在尝试将数据以 200 万个对称 100x100 矩阵的形式存储在我的硬盘上。这些矩阵的几乎所有元素都是非零的。我目前将这些数据保存在 200 个 npy 文件中;每个大小为 5.1GB,包含 100000x100x100 numpy 数组。这会占用超过 1TB 的硬盘空间。

无论如何,我可以利用矩阵是对称的这一事实来节省硬盘空间吗?

最佳答案

要仅存储矩阵的上半部分(包括对角线),您应该能够执行如下操作:

import numpy as np

data = np.load([filename])

flat = []
for a in data:
flat.append(a[np.triu_indices(100)])

np.savez([filename], *flat)

然后加载它们:

import numpy as np

flat = np.load([filename])

data = []

for name, a in flat:
arr = np.zeros((100,100),dtype=[dtype])
arr[np.triu_indices(100)] = a
arr = arr + arr.T - np.diag(arr.diagonal)
data.append(arr)

data = np.array(data)

关于 python / NumPy : Efficiently store non-sparse large symmetric arrays?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48344706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com