Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从scipy CSR稀疏矩阵访问值、列索引和行ptr数据_Python_Scipy_Sparse Matrix_Csr - Fatal编程技术网

Python 从scipy CSR稀疏矩阵访问值、列索引和行ptr数据

Python 从scipy CSR稀疏矩阵访问值、列索引和行ptr数据,python,scipy,sparse-matrix,csr,Python,Scipy,Sparse Matrix,Csr,我有一个大矩阵,我想转换成稀疏CSR格式 当我这样做时: import scipy as sp Ks = sp.sparse.csr_matrix(A) print Ks 在A密集的地方,我得到 (0, 0) -2116689024.0 (0, 1) 394620032.0 (0, 2) -588142656.0 (0, 12) 1567432448.0 (0, 14) -36273164.0 (0, 24) 233332608.0 (0, 25) 23

我有一个大矩阵,我想转换成稀疏CSR格式

当我这样做时:

import scipy as sp
Ks = sp.sparse.csr_matrix(A)

print Ks
在A密集的地方,我得到

 (0, 0) -2116689024.0
 (0, 1) 394620032.0
 (0, 2) -588142656.0
 (0, 12)    1567432448.0
 (0, 14)    -36273164.0
 (0, 24)    233332608.0
 (0, 25)    23677192.0
 (0, 26)    -315783392.0
 (0, 45)    157961968.0
 (0, 46)    173632816.0
等等

我可以使用以下方法获得行索引、列索引和值的向量:

Knz = Ks.nonzero()
sparserows = Knz[0]
sparsecols = Knz[1]

#The Non-Zero Value of K at each (Row,Col) 
vals = np.empty(sparserows.shape).astype(np.float)
for i in range(len(sparserows)):

    vals[i] = K[sparserows[i],sparsecols[i]]
但是有可能提取稀疏CSR格式(值、列索引、行指针)中假定包含的向量吗

SciPy的文档解释说,可以从这三个向量生成CSR矩阵,但我想做的是相反的,将这三个向量取出来

我错过了什么

谢谢你的时间

value = Ks.data
column_index = Ks.indices
row_pointers = Ks.indptr

我相信这些属性是未记录的,这可能会使它们受到更改,但我已经在几个版本的scipy上使用过它们。

但是要小心
indptr
是一种特殊的压缩格式数组。它与
coo
格式的
不同
Ks.非零
首先将
csr
数组转换为
coo
格式,并返回其
数组。