写在前面:使用sklearn.datasets的load_svmlight_file()时获取到一个稀疏矩阵,因为初涉python,不敢轻易尝试稀疏矩阵运算,打算将其转化为numpy库中的一般矩阵(matrix)。
稀疏矩阵形式:
>>> print(data)
(0, 0) -1.0
(0, 1) -0.64
(0, 2) -0.86437
(0, 3) -1.0
(0, 4) -0.37037
(0, 5) 0.155011
(0, 6) 0.283213
(0, 7) -0.461594
(0, 8) -1.0
(0, 9) -0.583969
(0, 10) -0.425532
(0, 11) 1.0
(0, 12) -0.82064
(1, 0) -0.999528
(1, 1) -1.0
··· ···
构造一般矩阵:
# todense()返回矩阵
>>> m = data.todense()
# 验证
>>> type(m)
<class 'numpy.matrixlib.defmatrix.matrix'>
>>> m
matrix([[-1.,-0.64,-0.86437, ... ,-0.425532,1.,-0.82064 ],
[-0.999528,-1.,-0.515396, ... ,0.106383,1.,-0.59106 ],
[-0.999529,-1.,-0.515396, ... ,0.106383,0.979475,-0.873068],
...,
[-0.998776,-1.,-0.159091, ... ,0.787234,1.,-0.784216],
[-0.997679,-1.,-0.159091, ... ,0.787234,0.982601,-0.737859],
[-0.999076,-1.,-0.159091, ... ,0.787234,1.,-0.660596]])
原来只要调用todense()
就能直接返回矩阵。