Python如何将CSR等稀疏矩阵转化为numpy中的一般矩阵

写在前面:使用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()就能直接返回矩阵。

你可能感兴趣的:(Python,学习笔记)