csr_matrix理解

csr_matrix

#  示例解读
>>> 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])
>>> csr_matrix((data, indices, indptr), shape=(3, 3)).toarray()
array([[1, 0, 2],
       [0, 0, 3],
       [4, 5, 6]])

就是说把data还原成一个array,你要知道行列的信息

行就是0,1,2,列信息存储在indptr、indices里,像翻译密码本一样层层嵌套

                                
行0   

indptr[0],indptr[1]=0,2   

1、找有数据的列

indices[indptr[0],indptr[1]]=indices[0,2]=[0,2]

意思是,第0行的第0、2列有值

2、找数据

data[indptr[0],indptr[1]]=data[0,2]=[1,2]

意思是,第0行的第0、2列的值是1,2


行1    

indptr[1],indptr[2]=2,3

1、找有数据的列

indices[indptr[1],indptr[2]]=indices[2,3]=2

意思是,第1行的第2列有值

2、找数据

data[indptr[1],indptr[2]]=data[2,3]=3

意思是,第1行的第2列的值是3

行2    列

indptr[2],indptr[3]=3,6

1、找有数据的列

indices[indptr[2],indptr[3]]=indices[3,6]=[0,1,2]

意思是,第2行的第0、1、2列有值

2、找数据

data[indptr[2],indptr[3]]=data[3,6]=4,5,6

意思是,第2行的第0、1、2列的值是4,5,6

你可能感兴趣的:(python,机器学习,算法)