为了账号安全,请及时绑定邮箱和手机立即绑定

如何保留 SciPy 稀疏矩阵 CSR_Matrix 中的插入顺序?

如何保留 SciPy 稀疏矩阵 CSR_Matrix 中的插入顺序?

慕的地6264312 2023-07-18 13:52:49
我想保留插入 SciPy csr_matrix 的顺序,但它似乎总是按行排序,然后按索引排序:>>> from scipy.sparse import csr_matrix>>> x = csr_matrix(([1,2,3],[[3,2,1],[5,2,1]]))>>> print(x)  (1, 1)    3  (2, 2)    2  (3, 5)    1无论如何要保持原来的排序吗?我想要的是:  (3, 5)    1  (2, 2)    2  (1, 1)    3ETA:发现使用该data, indices, indptr方法插入会保留行内的顺序(仍然按行排序,但不再按列索引排序)。而插入索引data, indices是一个二维索引矩阵,然后按行索引和列索引进行排序。
查看完整描述

1 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

CSR 格式以行格式存储数据(通过标记内存连续数据数组中每行开始和结束的位置)。您想要的信息不以该格式存在 - 压缩的一部分是删除它。

如果您需要该排序信息,可以将其保留为 COO 格式,但需要注意的是,某些操作会导致 COO 矩阵在没有警告的情况下进行排序。最好是显式存储该信息,而不是隐式存储(scipy 稀疏矩阵是否允许您在数据矩阵中使用结构?)。


查看完整回答
反对 回复 2023-07-18
  • 1 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信