如何用python在文本文件中编写稀疏矩阵?

如何用python在文本文件中编写稀疏矩阵?,python,sparse-matrix,Python,Sparse Matrix,我有一个稀疏矩阵。A_n的类型是“scipy.sparse.csc.csc_matrix” 例如,A_n是: (16, 0) 1.0 (71, 1) 1.0 (74, 3) 1.0 (72, 12) 1.0 . . . . (32, 17) 1.0 (64, 17) 1.0 (53, 19) 1.0 (73, 20) 1.0 (52, 21) 1.0 (52, 22) 1.0 (44, 26) 1.0 (

我有一个稀疏矩阵。A_n的类型是“scipy.sparse.csc.csc_matrix”

例如,A_n是:

(16, 0) 1.0
(71, 1) 1.0
(74, 3) 1.0
(72, 12)    1.0
  .          .
  .          .
(32, 17)    1.0
(64, 17)    1.0
(53, 19)    1.0
(73, 20)    1.0
(52, 21)    1.0
(52, 22)    1.0
(44, 26)    1.0
(53, 26)    1.0
(87, 26)    1.0
我想用python在一个文本文件中编写所有内容,如下所示:

16 0 1.0
71 1 1.0
74 3 1.0
.
.


如果您能指导我,我将不胜感激。

您可以使用
str(稀疏矩阵)
将备用矩阵对象转换为字符串,然后在将maxprint属性更改为备用矩阵.shape[0]后将其写入文件

sparse_matrix.maxprint = sparse_matrix.shape[0]
with open("spare_matrix.txt","w") as file:
    file.write(str(sparse_matrix)) 
    file.close() 

这里,'i'将遍历矩阵A\n的行,'j'将只遍历A\n的第i行的非零列

file = open('sparse_matrix.txt','w')

for i in range(A_n.shape[0]):
    for j in A_n[i].nonzero()[1]:
        file.write(str(i)+' ' +str(j)+' '+str(A_n[i,j])+'\n')
file.close()

您需要在以后访问它,还是只需要将其写入文件?为什么要将其保存到文件中?如果设置了特定的
i,j
元素,则使用双for循环然后将一行打印到标准输出是否有问题?我只想将其写入与上述表单相同的文本文件中。然后我想在excel中打开这个文件。不,没有。它的代码是什么?这个代码是正确的,但并没有在文件中写入所有矩阵元素。此代码忽略某些行并将其替换为“:”。例如,在符号“:”中的两行(72,12)和(32,17)之间写入“:”。在转换为字符串之前,我已更新了上面的代码并更改了maxprint属性,这应能解决此问题。我必须去阅读这个xD的scipy源代码。希望这能为你做到这一点这还不完整。它只打印最多行数的条目。它应该是
sparse\u matrix.maxprint=sparse\u matrix.count\u nonzero()
以包含所有非零数据。
file = open('sparse_matrix.txt','w')

for i in range(A_n.shape[0]):
    for j in A_n[i].nonzero()[1]:
        file.write(str(i)+' ' +str(j)+' '+str(A_n[i,j])+'\n')
file.close()