【发布时间】:2021-12-19 12:16:17
【问题描述】:
我在 scipy 中将 dok 转换为 coo 矩阵,文档对我来说似乎不清楚。 我的目标是不破坏原始矩阵! 文档指出:
将此矩阵转换为压缩稀疏行格式。 使用 copy=False,数据/索引可以在此矩阵和生成的 csr_matrix 之间共享。
但是它似乎输出矩阵而不是转换原始矩阵。 我认为“复制”可能会改变从转换到创建副本的行为,但测试表明这不是真的。我的程序运行时间很长,所以我不想在导出矩阵之前意外地破坏它:)
mat = scipy.sparse.dok_matrix((10,10),dtype=np.int16)
type(mat)
coo = mat.tocoo(copy=True)
print(type(mat))
print(type(coo))
coo = mat.tocoo(copy=False)
print(type(mat))
print(type(coo))
谢谢!
【问题讨论】:
-
矩阵对象是指包含非零矩阵条目、这些条目的位置等的数组。我认为复制确定是否复制这些其他数组,或者两个矩阵是否尽可能引用相同的底层数组.尝试在一个矩阵的实验中更改 mat.data,看看它是否会影响另一个矩阵中的 mat.data
标签: python numpy scipy sparse-matrix