python - Numpy:将稀疏矩阵转换为 ndarray

标签 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, 0]

解决方案:

t.toarray().flatten()

最佳答案

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

关于python - Numpy:将稀疏矩阵转换为 ndarray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24756741/

相关文章:

python - 生成所有可能组合的 numpy 数组(物种组合)

linux - 帮助创建温度湿度脚本

python - efrc 给出错误 length-1 数组可以转换为 python

Python NumPy 矢量化以减少处理时间

python - 有效获取 np.datetime64 元素列表中不同日期的数量

python - 在sqlalchemy中,如何快速定义相同的表模型(calss),而仅表名不同?

pandas - 对长度不均匀的多个 NumPy 向量求和的最快方法

c++ - 高效访问矩阵列

matrix - Cuda/PyCuda - 大型矩阵遍历和 block /网格大小

java - 在有限域上求解方程组