【问题标题】:Numpy: Transform sparse matrix to ndarrayNumpy:将稀疏矩阵转换为 ndarray
【发布时间】:2014-07-15 11:14:00
【问题描述】:

我真的无法谷歌它。如何将稀疏矩阵转换为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, 0]

解决方案:

t.toarray().flatten()

【问题讨论】:

  • 你可以改用.toarray()...

标签: python numpy matrix sparse-matrix


【解决方案1】:

使用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()

【讨论】:

    【解决方案2】:

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

    g = g.T
    

    【讨论】:

      猜你喜欢
      • 2021-11-25
      • 1970-01-01
      • 2014-12-21
      • 2023-04-10
      • 2017-07-02
      • 2018-05-30
      • 1970-01-01
      • 2013-11-13
      • 2020-04-07
      相关资源
      最近更新 更多