Python 打印完整的coo_矩阵

Python 打印完整的coo_矩阵,python,python-2.7,numpy,scipy,sparse-matrix,Python,Python 2.7,Numpy,Scipy,Sparse Matrix,我试图用另一个矩阵实例化一个coo_矩阵。当我试图打印coo_矩阵时,输出为: (1, 9) 1.0 (1, 10) 1.0 (1, 11) 1.0 (1, 25) 1.0 (1, 47) 1.0 (2, 1) 1.0 (2, 7) 1.0 (2, 11) 3.0 (2, 12) 1.0 (2, 13) 1.0 (2, 15) 2.0 (2, 19) 1.0 (2, 42) 1.0 (3, 0) 1.0 (4, 20) 1.0 (4, 22) 1.0 (4, 24) 1.0 : :

我试图用另一个矩阵实例化一个
coo_矩阵。当我试图打印
coo_矩阵
时,输出为:

(1, 9)  1.0
(1, 10) 1.0
(1, 11) 1.0
(1, 25) 1.0
(1, 47) 1.0
(2, 1)  1.0
(2, 7)  1.0
(2, 11) 3.0
(2, 12) 1.0
(2, 13) 1.0
(2, 15) 2.0
(2, 19) 1.0
(2, 42) 1.0
(3, 0)  1.0
(4, 20) 1.0
(4, 22) 1.0
(4, 24) 1.0
:   :
(45, 0) 1.0
(45, 7) 1.0
(45, 14)    2.0
(45, 20)    1.0
(45, 26)    1.0
(45, 38)    1.0
(45, 40)    1.0
(46, 11)    1.0
(46, 19)    1.0
(46, 36)    1.0
(46, 41)    1.0
(46, 47)    1.0

如何打印完整的
coo_矩阵
?我尝试使用
set\u printoptions(threshold='nan')
但不起作用。

您可以使用
.todense()方法将稀疏矩阵转换为密集矩阵:

print(my_coo_matrix.todense())
编辑:你的问题听起来好像你也想打印零值元素,但是如果你只想打印非零值元素,你可以手动迭代矩阵:

for row, col, value in zip(my_coo_matrix.row, my_coo_matrix.col, my_coo_matrix.data):
    print "({0}, {1}) {2}".format(row, col, value)

我发现使用spy()直观地表示它很有帮助

(对于非常大的coo_矩阵)导出到
csv
,然后将其保存为
xlsx
可能会有所帮助

例如:

import numpy
numpy.savetxt('coo_matrix.csv', coo_matrix.todense(), delimiter = ',') 

在此上下文中,您所说的“完成”是什么意思?您希望看到所有非零值,还是包括0的整个矩阵?通常稀疏矩阵太大而无法完整显示,这就是为什么它有两种不同的缩写显示(
repr(a)
str(a)
)。要查看0,必须将其再次加密。我只想查看非零值。
print(matrix.data)
将非零值元素的值打印为1D数组。这就是你想要的吗?@BhuvanReddy:你只想看到非零值。您只看到非零值。有什么问题吗?这很有帮助!谢谢
import numpy
numpy.savetxt('coo_matrix.csv', coo_matrix.todense(), delimiter = ',')