我需要保存一个 50,000x50,000 稀疏矩阵/二维数组,其中约 5% 的单元格均匀分布且非空。我将需要:
编辑我需要在 numpy/scipy 中执行此操作,如果不清楚,抱歉。此外,增加了要求。
- 从数据库中读取 5% 的非空数据,并尽快将其分配给矩阵/二维数组单元。
- 使用尽可能少的内存。
- 使用花哨的索引(例如,获取列中所有非空值的索引)。这是不错的选择,内存和构建时间更重要。
- 一旦构建,矩阵将不会改变。
- 但是,我会想要使用它的转置,最好是 O(1) 内存和时间。
实现这一目标的最有效方法是什么?我可以用 nan 而不是 0 来表示“空”单元格吗?(0 对我来说是一个有效值),我可以有效地运行 nansum、nanmean 吗?如果不是,我可以有效地获取给定列/行中所有非零的索引和值吗?