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 = ',')