打印完成 coo_matrix

Printing complete coo_matrix

我尝试使用另一个矩阵实例化 coo_matrix。当我尝试打印 coo_matrix 时,输出是:

(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_matrix?我试过使用 set_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() 直观地表示它很有帮助。

spy(coo_matrix)

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

示例:

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