Numpy:将稀疏矩阵转换为ndarray

时间:2014-07-15 11:14:00

标签: python numpy matrix sparse-matrix

我真的无法谷歌。如何将稀疏矩阵转换为ndarray?

假设我有零稀疏矩阵t。然后

g = t.todense()
g[:10] 

matrix([[0],
    [0],
    [0],
    [0],
    [0],
    [0],
    [0],
    [0],
    [0],
    [0]])

而不是[0,0,0,0,0,0,0,0,0]

解决方案:

t.toarray()。弄平()

2 个答案:

答案 0 :(得分:3)

使用np.asarray

>>> a = np.asarray(g)
>>> a
array([[0],
       [0],
       [0],
       [0],
       [0],
       [0],
       [0],
       [0],
       [0],
       [0]])

g是示例中的密集矩阵(在调用t.todense()之后)。

你明确要求输出

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

只有一个维度。为此,您需要flatten数组:

>>> flat_array = np.asarray(g).flatten()
>>> flat_array
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

修改

您可以使用以下命令直接跳过稀疏矩阵中的数组:

a = t.toarray()

答案 1 :(得分:0)

转置矩阵以将第一列转换为第一行

g = g.T