sparse的一些函数

scipy.sparse 一些函数

(1)coo_matrix()

import numpy as np
import scipy.sparse as sp
row = np.array([0,0,1,3])
col = np.array([0,2,1,3])
data = np.array([1,6,3,7])
coo_matrix = sp.coo_matrix((data,(row,col)), shape=(4,4)).toarray()
print(coo_matrix)

结果:
在这里插入图片描述
coo_matrix((data, (row, col)), [shape=(M, N)])
啥么意思嘞,就是二维列表,row代表行,col代表列,data里的数据就相当于值,没有指定数据的就是用0来代替了…

优点:

1.不同稀疏格式间转换效率高(exp:CSR/CSC)
2.coo_matrix不支持元素的存取和增删,一旦创建之后,除了将之转换成其它格式的矩阵,几乎无法对其做任何操作和矩阵运算。
3.构建矩阵时,允许坐标重复

缺点:

1.不能直接运算
2.不能直接切片操作

(2)csc_matrix

csc_matrix: 压缩稀疏列矩阵(Compressed sparse column matrix)

优点:

1.高效的矩阵加法与乘法内积运算
2.高效的列切片操作

缺点:

1.矩阵内积操作没有CSR快
2.行切片操作慢(相比CSR)
3.转换成稀疏结构成本高(相比LIL)

(3)lil_matrix

sparse的一些函数_第1张图片
lil_matrix:基于行连接存储的稀疏矩阵(Row-based linked list sparse matrix)
优点:

1.快速按行切片
2.高效地添加、删除、查找元素

缺点:

1.按列切片很慢(建议CSC)
2.算术运算LIL+LIL很慢(考虑CSR或CSC)

(4)dok_matrix()

sparse的一些函数_第2张图片

dok_matrix()函数的功能就是:可以高效地逐渐构造稀疏矩阵。

转化函数

todense([order, out]):返回稀疏矩阵的np.matrix形式
toarray([order, out]):返回稀疏矩阵的np.array形式
tobsr([blocksize, copy]):返回稀疏矩阵的bsr_matrix形式
tocoo([copy]):返回稀疏矩阵的coo_matrix形式
tocsc([copy]):返回稀疏矩阵的csc_matrix形式
tocsr([copy]):返回稀疏矩阵的csr_matrix形式
todia([copy]):返回稀疏矩阵的dia_matrix形式
todok([copy]):返回稀疏矩阵的dok_matrix形式
tolil([copy]):返回稀疏矩阵的lil_matrix形式

官网:scipy

还有一些函数

save_npz(file, matrix[, compressed]):以.npz格式保存稀疏矩阵
load_npz(file):导入.npz格式的稀疏矩阵
find(A):返回稀疏矩阵A中的非零元的位置以及数值

你可能感兴趣的:(python)