use*_*289 7 python numpy sparse-matrix pytables h5py
我有两个布尔稀疏的方形矩阵c.从12BM数据生成80,000 x 80,000(当我使用GB数据时,可能会有更大数量级的矩阵).
我想将它们相乘(它产生一个三角形矩阵 - 但是我没有得到这个,因为我不限制点积产生三角矩阵).
我想知道它们的最佳乘法方式是什么(内存方式和速度方式) - 我将在m2.4xlarge AWS实例上进行计算,该实例具有> 60GB的RAM.出于速度原因,我宁愿将计算结果保留在RAM中.
我很欣赏SciPy有稀疏矩阵,h5py也是如此,但两者都没有经验.
什么是最好的选择?
提前致谢
更新:布尔矩阵的稀疏度<0.6%
如果您的矩阵相对空,则可能值得将它们编码为非 False 值的数据结构。说出描述非 False 值位置的元组列表。或者以元组为键的字典。
如果您使用例如元组列表,您可以使用列表理解来查找第二个列表中可以与第一个列表中的元素相乘的项目。
a = [(0,0), (3,7), (5,2)] # et cetera
b = ... # idem
for r, c in a:
res = [(r, k) for j, k in b if k == j]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3582 次 |
| 最近记录: |