• 三种函数的英文全名,首先是从表面意思上入手。
    coo_matrix :COOrdinate format matrix(坐标格式矩阵)
    csc_matrix:Compressed Sparse Column matrix(压缩稀疏列矩阵)
    csr_matrix:Compressed Sparse Row matrix(压缩稀疏行矩阵)
    这三个函数都是用来构建稀疏矩阵(矩阵中非0元素较少)的,而且可以得到一样的矩阵,只是方式不同。
  • coo_matrix
    先从容易理解的coo_matirx开始,帮助大家对构造稀疏矩阵方法有个初步的认识。
from scipy.sparse import coo_matrix
import numpy as np
row = np.array([1, 1, 3, 2]) # 行索引
col = np.array([0, 2, 2, 3]) # 列索引
data= np.array([5, 8, 4, 9]) # 索引对应的数值
coo = coo_matrix((data, (row, col)), shape=(4, 4)).todense()
#先看shape,表示这个稀疏矩阵是4x4大小的,所有值初始都为0,即4x4的全0矩阵
#(row, col)行、列组合就表示一个具体的位置,其(1,0),(1,2),(3,2),(2,3)就是4x4矩阵的索引位置。
#data,表示索引位置上的数值,即(1,0)上的数值为5,(1,2)上的数值为8,等等。
#todense,作用可以自己试试,如果没有这个函数,则输出如下结果
#  (1, 0)   5
#  (1, 2)   8
#  (3, 2)   4
#  (2, 3)   9
print(coo)
#打印出coo稀疏矩阵

输出:

[[0 0 0 0][5 0 8 0][0 0 0 9][0 0 4 0]]
Process finished with exit code 0
  • csc_matrix
from scipy.sparse import csc_matrix
import numpy as np
row = np.array([1, 1, 3, 2])
col = np.array([0, 1, 1, 3, 4])
#将col列分为4段{0:1, 1:1, 1:3, 3:4},每段表示每一列有多少个数,具体来说就是第0列有1个数,第1列有0个数,第2列有2个数,第3列有1个数。
data= np.array([5, 8, 4, 9])
#结合row,col,则第0列的数(5)出现在第1行,第2列的数(8、4)分别出现在第1、3行,第3列的数(9)出现在第2行.
coo = csc_matrix((data, row, col), shape=(4, 4)).todense()
print(coo)

输出:

[[0 0 0 0][5 0 8 0][0 0 0 9][0 0 4 0]]
Process finished with exit code 0
  • csr_matrix
from scipy.sparse import csr_matrix
import numpy as np
row = np.array([0, 0, 2, 3, 4])
##将row列分为4段{0:0, 0:2, 2:3, 3:4},每段表示每一列有多少个数,具体来说就是第0行有0个数,第1行有2个数,第2行有1个数,第3行有1个数。
col = np.array([0, 2, 3, 2]) # 注意与coo_matrix的col内的数值顺序不一样
data= np.array([5, 8, 9, 4]) # 注意与coo_matrix的data内的数值顺序不一样
#结合row,col,则第1行的数(5、8)出现在第0列和第2列,第2行的数(9)分别出现在第3列,第3行的数(4)出现在第2列.
coo = csr_matrix((data, col, row), shape=(4, 4)).toarray()
print(coo)

输出:

[[0 0 0 0][5 0 8 0][0 0 0 9][0 0 4 0]]
Process finished with exit code 0

综上,coo_matrix、csc_matrix、csr_matrix三个函数可以得到一样的矩阵,只是方式不同。

Scipy.sparse模块中的coo_matrix、csc_matrix、csr_matrix函数相关推荐

  1. Scipy.sparse模块中coo_matrix、csc_matrix、csr_matrix区别

    Scipy.sparse模块常用的三种具体形式 coo_matrix :COOrdinate format matrix csc_matrix :Compressed Sparse Column ma ...

  2. python scipy.stats.norm.cdf_python的scipy.stats模块中正态分布常用函数总结

    python的scipy.stats模块是连续型随机变量的公共方法,可以产生随机数,通常是以正态分布作为scipy.stats的基本使用方法.本文介绍正态分布的两种常用函数:1.累积概率密度函数sta ...

  3. 使用scipy.integrate模块中的quad和dblquad方法分别进行单重积分和多重积分

    一.单重积分     一般而言,使用求解微积分可以分为两大类:符号积分(即求出解析解)和数值积分(即求出数值解).在计算机的处理当中,数值解往往更有意义.     quadquadquad函数是 sc ...

  4. pythoncopy函数_Python的shutil模块中文件的复制操作函数详解

    copy()chutil.copy(source, destination) shutil.copy() 函数实现文件复制功能,将 source 文件复制到 destination 文件夹中,两个参数 ...

  5. Python稀疏矩阵运算库scipy.sparse用法精要

    1.稀疏矩阵的常见存储形式 bsr_matrix(arg1[, shape, dtype, copy, blocksize]) Block Sparse Row matrix coo_matrix(a ...

  6. 正确理解scipy中的coo_matrix函数

    正确理解scipy中的coo_matrix函数 1. 构造一个空矩阵 2. 使用ijv(triplet)格式构造一个矩阵 3. 用重复的索引构造矩阵 1. 构造一个空矩阵 这种用法比较简单,直接生成一 ...

  7. scipy.sparse使用简例

    CDIMC-Net[1] 中有个对整个数据集求 kNN 图的函数 get_kNNgraph2[2],是用 dense 的 numpy.ndarray 存的,空间复杂度 O ( n 2 ) O(n^2) ...

  8. Scipy.sparse中coo_matrix、csc_matrix、csr_matrix、lil_matrix辨析

    简介 1. coo_matrix: 坐标格式的矩阵(Coodrdinate format matrix) data = [1, 1, 1] row = [0, 1, 1] col = [0, 1, 1 ...

  9. scipy.sparse.csr_matrix函数和coo_matrix函数

    Scipy高级科学计算库:和Numpy联系很密切,Scipy一般都是操控Numpy数组来进行科学计算.统计分析,所以可以说是基于Numpy之上了.Scipy有很多子模块可以应对不同的应用,例如插值运算 ...

最新文章

  1. pytorch模型转onnx-量化rknn(bisenet)
  2. #ifdef __cplusplus extern “C”的作用详解
  3. c struct 对齐_C中的struct大小| 填充,结构对齐
  4. js中prototype用法
  5. SVN 冲突文件详解
  6. Atitit 医学之道 attilax总结
  7. 前置加加与后置加加的区别
  8. 华三交换机dhcp 保留地址
  9. Python 列表,for循环,元组的使用【修改、添加、删除、排序、切片】w
  10. java 复制excel_利用Java实现复制Excel工作表功能
  11. 如何设计一个小而美的秒杀系统(抢红包)?
  12. 不知足者常乐:SAP云在中国的落地
  13. 阿里云大咖秀——了不起的“空格”
  14. Lammps安装教程 windows版
  15. 视觉工程师面试50问
  16. emqx 修改网页客户端dashboard 密码
  17. Do not use built-in or reserved HTML elements as compo
  18. hooks useRef 报错object is possibly undefined
  19. XP系统取消开机硬件检查
  20. 武汉大学计算机学院卓越工程师班,大学里的三大重点班:实验班、基地班、卓越工程师班...

热门文章

  1. CAM350使用说明
  2. 陈天奇slide学习笔记
  3. 【dp】The King‘s Ups and Downs
  4. 国内大数据模式的发展现状和趋势
  5. csdn排版怎么一行两张图
  6. 暴力破解及端口扫描详解
  7. 【verilog学习12】HDLBits:Procedures (Always block/case+Avoiding latches)
  8. 恩施聚硒:实施“四大工程” 打造“六大中心”
  9. 传统医学师承和确有专长人员医师资格考核考试办法在全国全面实施
  10. 大数据——Java I/O输入输出处理(二)