【发布时间】:2020-08-19 19:31:47
【问题描述】:
我有一个 20,000 x 20,000 的 Numpy 矩阵,我希望按文件存储,其中平均体积只有 12 个值。
什么是最有效的方式来只存储格式的值
if array[i][j] == 1:
file.write("{} {} {{}}\n".format(i, j)
哪里 (i, j) 是数组的索引?
【问题讨论】:
-
您正在使用的稀疏矩阵实现是否有自己的序列化代码(例如用于
pickle)?这可能比学习足够多的实现来编写自己的实现更容易学习和使用。 -
明确一点:您愿意牺牲内存来换取性能(因此将值加载到普通的 Numpy 数组中),但希望节省磁盘空间?
-
@Blckknght 现在它只是一个 numpy 数组,所以我其实不知道,soprry!
-
@KarlKnechtel 没错!我可以牺牲尽可能多的内存来获得最佳性能。生成数组只需要 1 秒,但存储它需要整整一分钟。
-
np.nonzero给出非零元素的索引。
标签: python arrays numpy matrix sparse-matrix