scipy构建稀疏矩阵

Posted wzdly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scipy构建稀疏矩阵相关的知识,希望对你有一定的参考价值。

from scipy.sparse import csr_matrix
import numpy as np
indptr  = np.array([0, 2, 3, 6])
indices = np.array([0, 2, 2, 0, 1, 2]) 
data    = np.array([1, 2, 3, 4, 5, 6]) #表示要构建稀疏矩阵的数据


#按照行来压缩,
#方法:第i行(本例中i=0,1,2),
#非零数据列的索引为indices[indptr[i]:indptr[i+1]] 
#非零数据列的数据为   data[indptr[i]:indptr[i+1]]
csr_matrix((data, indices, indptr),shape=(3, 3)).toarray()
array([[1, 0, 2],
       [0, 0, 3],
       [4, 5, 6]])
from scipy.sparse import csc_matrix
#按照列来压缩,
#方法:第i列(本例中i=0,1,2),
#非零数据行的索引为indices[indptr[i]:indptr[i+1]] 
#非零数据行的数据为   data[indptr[i]:indptr[i+1]]

csc_matrix((data, indices, indptr), shape=(3, 3)).toarray()
#和上面的例子正好是转置
array([[1, 0, 4],
       [0, 0, 5],
       [2, 3, 6]])



以上是关于scipy构建稀疏矩阵的主要内容,如果未能解决你的问题,请参考以下文章

优化 Scipy 稀疏矩阵

Scipy---6.稀疏矩阵

计算 scipy 稀疏矩阵的稀疏传递闭包

将 scipy 稀疏矩阵存储为 HDF5

scipy稀疏矩阵和numpy数组之间的点积给出ValueError

在 Python 中对稀疏矩阵执行分解