当前位置: 首页 > news >正文

网站怎么做黑链接wordpress模版如何套用

网站怎么做黑链接,wordpress模版如何套用,小程序开发流程详解,杭州培训网站建设引言和稠密矩阵相比#xff0c;稀疏矩阵的最大好处就是节省大量的内存空间来储存零。稀疏矩阵本质上还是矩阵#xff0c;只不过多数位置是空的#xff0c;那么存储所有的 0 非常浪费。稀疏矩阵的存储机制有很多种 (列出常用的五种)#xff1a;COO (Coordinate List Format)… 引言和稠密矩阵相比稀疏矩阵的最大好处就是节省大量的内存空间来储存零。稀疏矩阵本质上还是矩阵只不过多数位置是空的那么存储所有的 0 非常浪费。稀疏矩阵的存储机制有很多种 (列出常用的五种)COO (Coordinate List Format)座标格式容易创建但是不便于矩阵计算用 coo_matrixCSR (Compressed Sparse Row) 压缩行格式不容易创建但便于矩阵计算用 csr_matriCSC (Compressed Sparse Column) 压缩列格式不容易创建但便于矩阵计算用 csc_matrixLIL (List of List): 内嵌列表格式支持切片但也不便于矩阵计算用 lil_matrixDIA (Diagnoal)对角线格式适合矩阵计算用 dia_matrix在 SciPy 中稀疏矩阵一共有七种剩余的两种类型 BSR 和 DOK 本贴不做研究。有兴趣的读者可以去官网去查询。COO采用三元组 (row, col, data) 的形式来存储矩阵中非零元素的信息即把非零值 data 按着行坐标 row 和纵坐标 col 写成两个列表。如下图所示坐标 (1, 1) 对应的数据 2坐标 (3, 4) 对应的数据 5坐标 (0, 2) 对应的数据 9坐标 (2, 3) 对应的数据 1坐标 (4, 3) 对应的数据 6在实际使用中用 coo_matrix() 语法来创建矩阵注意产出矩阵的格式是COOrdinate。values [1, 2, 3, 4]rows [0, 1, 2, 3]cols [1, 3, 2, 0]A sp.coo_matrix((values, (rows, cols)), shape[4, 4])A4x4 sparse matrix of type numpy.int32with 4 stored elements in COOrdinate format检查矩阵 A 的形状、数据类型、维度和非零值的个数。A.shape, A.dtype, A.ndim, A.nnz((4, 4), dtype(int32), 2, 4)检查矩阵 A 的行坐标、列坐标和数据。A.row, A.col, A.data(array([0, 1, 2, 3], dtypeint32), array([1, 3, 2, 0], dtypeint32), array([1, 2, 3, 4]))如果想看 A 中的元素我们可用 toarray() 转换成 numpy 数组显示出来。A.toarray()array([[0, 1, 0, 0],       [0, 0, 0, 2],       [0, 0, 3, 0],       [4, 0, 0, 0]])COO 矩阵的元素无法进行增删改操作一般创建成功之后可以转化成其他格式的稀疏矩阵 (如 CSR, CSC) 进行转置、矩阵乘法等操作或者转成转成 LIL 做切片。A.tocsr()4x4 sparse matrix of type numpy.intcwith 4 stored elements in Compressed Sparse Row formatA.tolil()4x4 sparse matrix of type numpy.intcwith 4 stored elements in List of Lists format可视化矩阵 Aplt.spy(A);CSR由三个一维数组 indptr, indices, data 组成。这种格式要求矩阵元按行顺序存储每一行中的元素可以乱序存储。那么对于每一行就只需要用一个指针表示该行元素的起始位置即可。indices 存储每行中数据的列号与属性 data 中的元素一一对应indptr 存储每行数据元素的起始位置如下图所示第 1 行indptr 0-2 指 indices[0:2] 的值即 0 和 2分别又指第 0 和 2 列对应的数据 8 和 2第 2 行indptr 2-3 指 indices[2:3] 的值即 2分别又指第 2 列对应的数据 5第 3 行indptr 3-3 指 indices[3:3] 的值为空无数据第 4 行indptr 3-3 指 indices[3:3] 的值为空无数据第 5 行indptr 3-6 指 indices[3:6] 的值即 23 和 4分别又指第 23 和 4 列对应的数据 71 和 2第 6 行indptr 6-6 指 indices[6:6] 的值为空无数据第 7 行indptr 6-7 指 indices[6:7] 的值即 3分别又指第 3 列对应的数据 9规律indptr 的长度等于矩阵行数加 1而第 i 行的列数就是 indices[indptr[i]:indptr[i1]]。用 csr_matrix() 语法用来创建矩阵注意产出矩阵的格式是 Compressed Sparse Row。data np.array([1, 2, 3, 4, 5, 6])indices np.array([0, 2, 2, 0, 1, 2])indptr np.array([0, 2, 3, 6])A sp.csr_matrix((data, indices, indptr), shape(3, 3))A3x3 sparse matrix of type numpy.int32with 6 stored elements in Compressed Sparse Row format检查矩阵 A 的形状、数据类型、维度和非零值的个数。A.shape, A.dtype, A.ndim, A.nnz((3, 3), dtype(int32), 2, 6)检查矩阵 A 的列索引、索引指针和数据。A.indices, A.indptr, A.data(array([0, 2, 2, 0, 1, 2]), array([0, 2, 3, 6]), array([1, 2, 3, 4, 5, 6]))如果想看 A 中的元素我们可用 toarray() 转换成 numpy 数组显示出来。A.toarray()array([[1, 0, 2],       [0, 0, 3],       [4, 5, 6]])可视化矩阵 Aplt.spy(A);CSCcsc_matrix 和 csr_matrix 正好相反即按列压缩的稀疏矩阵存储方式同样由三个一维数组 indptr, indices, data 组成indices 存储每列中数据的行号与属性 data 中的元素一一对应indptr 存储每列数据元素的起始位置如下图所示第 0 列indptr 0-1 指 indices[0:1] 的值即 0分别又指第 0 行对应的数据 8第 1 列indptr 1-1 指 indices[1:1] 的值为空无数据第 2 列indptr 1-4 指 indices[1:4] 的值即 01 和 4分别又指第 01 和 4 行对应的数据 25 和 7第 3 列indptr 4-6 指 indices[4:6] 的值即 4 和 6分别又指第 4 和 6 行对应的数据 1 和 9第 4 列indptr 6-7 指 indices[6:7] 的值即 4分别又指第 4 行对应的数据 2规律indptr 的长度等于矩阵列数加 1而第 i 列的行数就是 indices[indptr[i]:indptr[i1]]。用 csc_matrix() 语法用来创建矩阵注意产出矩阵的格式是 Compressed Sparse Column。data np.array([1, 2, 3, 4, 5, 6])indices np.array([0, 2, 2, 0, 1, 2])indptr np.array([0, 2, 3, 6])A  sp.csc_matrix((data, indices, indptr), shape(3, 3))A3x3 sparse matrix of type numpy.int32with 6 stored elements in Compressed Sparse Column format检查矩阵 A 的形状、数据类型、维度和非零值的个数。A.shape, A.dtype, A.ndim, A.nnz((3, 3), dtype(int32), 2, 6)检查矩阵 A 的行索引、索引指针和数据。A.indices, A.indptr, A.data(array([0, 2, 2, 0, 1, 2]), array([0, 2, 3, 6]), array([1, 2, 3, 4, 5, 6]))如果想看 A 中的元素我们可用 toarray() 转换成 numpy 数组显示出来。A.toarray()array([[1, 0, 4],       [0, 0, 5],       [2, 3, 6]])可视化矩阵 Aplt.spy(A);LILlil_matrix 使用两个嵌套列表存储稀疏矩阵data 保存每行中的非零元素的值rows 保存每行非零元素所在的列号 (列号是按顺序排的)。这种格式很适合逐个添加元素并且能快速获取行相关的数据。如下图所示第 0 行列号为 024对应的数据为 81-1第 1 行列号为 12对应的数据为 82第 2 行列号为 2对应的数据为 3第 3 行列号为 0234对应的数据为 -248-2第 4 行列号为 24对应的数据为 58第 5 行列号为 2对应的数据为 6用 lil_matrix() 语法用来创建矩阵注意产出矩阵的格式是 Lists of Lists。data [[8,0,1,0,-1], [0,8,2,0,0], [0,0,3,0,0], [-2,0,4,8,-2], [0,0,5,0,8], [0,0,6,0,0]]A sp.lil_matrix(data)A6x5 sparse matrix of type numpy.intcwith 13 stored elements in List of Lists format检查矩阵 A 的每行的非零值对应的列索引。A.rowsarray([list([0, 2, 4]), list([1, 2]), list([2]), list([0, 2, 3, 4]),       list([2, 4]), list([2])], dtypeobject)如果想看 A 中的元素我们可用 toarray() 转换成 numpy 数组显示出来。A.toarray()array([[ 8, 0, 1, 0, -1],       [ 0, 8, 2, 0, 0],       [ 0, 0, 3, 0, 0],       [-2, 0, 4, 8, -2],       [ 0, 0, 5, 0, 8],       [ 0, 0, 6, 0, 0]], dtypeint32)可视化矩阵 Aplt.spy(A);DIAdia_matrix 按对角线的存储方式。稀疏矩阵使用 offsets 和 data 两个矩阵来表示其中offsets 表示 data 中每一行数据在原始稀疏矩阵中的对角线位置 kk 0, 对角线往右上方移动 k 个单位k 0, 对角线往左下方移动 k 个单位k 0主对角线如下图所示offset 0 对应的数据 [1,2,3,4,5] 在主对角线上offset -3 对应的数据 [6,7,8,9,10] 在主对角线左下方移动 3 个单位offset 2 对应的数据 [11,12,13,14,15] 在对角线上右上方移动 2 个单位用 dia_matrix() 语法用来创建矩阵注意产出矩阵的格式是 DIAgonal。data np.arange(1,13).reshape(3,-1)offset [-1, 0, 1]A sp.dia_matrix( (data, offset), shape(4,4) )A4x4 sparse matrix of type numpy.int32with 10 stored elements (3 diagonals) in DIAgonal format检查矩阵 A 的平移单位。A.offsetsarray([-1, 0, 1], dtypeint32)如果想看 A 中的元素我们可用 toarray() 转换成 numpy 数组显示出来。A.toarray()array([[ 5, 10, 0, 0],       [ 1, 6, 11, 0],       [ 0, 2, 7, 12],       [ 0, 0, 3, 8]])可视化矩阵 Aplt.spy(A);此外在 sp.sparse 模块里还有一些直接创建稀疏矩阵的函数eye 生成稀疏单位对角阵diags 构建稀疏对角阵spdiags 构建稀疏对角阵假设我们想生成一个方阵主对角线上面是 -2上下次对角线上的值为 1。方法一用 eyeN 5A sp.eye(N, k1) - 2 * sp.eye(N) sp.eye(N, k-1)A.toarray()array([[-2., 1., 0., 0., 0.],       [ 1., -2., 1., 0., 0.],       [ 0., 1., -2., 1., 0.],       [ 0., 0., 1., -2., 1.],       [ 0., 0., 0., 1., -2.]])方法二用 diagsA sp.diags([1, -2, 1], [1, 0, -1], (N, N), formatcsc)A.toarray()array([[-2., 1., 0., 0., 0.],       [ 1., -2., 1., 0., 0.],       [ 0., 1., -2., 1., 0.],       [ 0., 0., 1., -2., 1.],       [ 0., 0., 0., 1., -2.]])方法三用 spdiagsdata np.vstack( [np.repeat(1,N), np.repeat(-2,N), np.repeat(1,N)] )A sp.spdiags( data, [1, 0, -1], N, N )A.toarray()array([[-2., 1., 0., 0., 0.],       [ 1., -2., 1., 0., 0.],       [ 0., 1., -2., 1., 0.],       [ 0., 0., 1., -2., 1.],       [ 0., 0., 0., 1., -2.]])三种方法都得到一样的结果但是用  diags 方法代码最简洁些。但是如果对角线上的值都不一样那么只能用 spdiags 方法原因是它的参数是数组而不是元素。在金工中一维 PDE 有限差分离散之后都是这种类型的三对角矩阵 (tri-diagnol)因此要熟练掌握用 diags/spdiags 方法来创建金工需要的“稀疏矩阵”。总结从官网资料看出一般使用 lil_matrix 来构建矩阵效率最高。由于 LIL 形式是基于行的因此它能够很高效的转为 CSR但是转为 CSC 的效率相对较低。如果要执行矩阵乘法或转置将它们转换成 CSC 或 CSR 格式效率最高。总之在运算稀疏矩阵时绝对绝对不要直接使用 NumPy~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~如果觉得好关注、转发、在看三连发走起  666~~~福利来一波~~~关注公众号回复以下信息送免费资料回复Jenkins 领取Jenkins学习资料回复Jmeter 领取Jmeter学习资料回复Java   领取Java学习资料回复Python 领取python入门资料回复RobotFramework   领取RobotFramework 框架搭建资料你可能会喜欢Jmeter关联系列_数据驱动中的业务逻辑关联docker搭建接口自动化持续集成框架python28迷宫游戏最短路径算法4300 字Python列表使用总结用心盘一盘 Python 系列基础篇十一之 机器学习 Sklearn盘一盘 Python 系列特别篇二十之 天数计数|年限Linux环境部署之ubuntu网络配置性能测试指标7性能测试的阶段性工作jmeter之对jar包进行调用jmeter之爬取网络图片软件质量保障体系图研发过程中的测试工作APP测试流程及测试点WEB测试范围小结测试交流加我备注【测试交流】拉入交流群更有不定期资料赠送敬请期待本文转载自【公众号王的机器】
http://www.pierceye.com/news/877096/

相关文章:

  • 益阳营销型网站建设乌鲁木做兼职的网站
  • 如何建单位网站怎么让别人找你做网站
  • 青海建设厅职称网站建设小程序怎么挂失
  • 建设在线购物网站51zwd一起做网站广州
  • 如何制作网站图片帮忙做网站
  • 高端做网站公司网络信息安全公司
  • 手机网站图片自适应建设网站用的软件
  • wordpress postid随机苏州百度推广排名优化
  • 重庆企业网站推广服务做性的网站
  • asp.net 创建网站登陆建设银行网站异常
  • 柳州网站建设柳州wordpress 创建文集
  • 怎样把网站做成app多语言网站建设方案
  • 中国最新新闻头条南通百度网站快速优化
  • 乐清网站推广制作长沙银狐做网站
  • 做企业网站需要多久论坛网站推广方案
  • 郑州网站优化排名wordpress搭建本地博客
  • 如何获取网站域名证书刚刚北京传来重大消息
  • 找别人做淘客网站他能改pid吗现在中型公司做网站用的是什么框架
  • 泉州晋江网站建设费用海南建设银行官网招聘网站
  • 自己给公司做网站郑州工程建设信息网站
  • 单页网站建站外贸公司网站怎么设计更好
  • 滨州建设工程备案网站网站制作九江
  • 北京网站制作业务如何开展全屋整装定制
  • 网站seo博客刷百度关键词排名
  • 制作企业网站的代码馆陶专业做网站
  • 网站建设简介联系方式PHP 网站开发 重点知识
  • 网页设计网站排行榜浅谈一下网络营销的几个误区
  • 上海网站制作公司报价中国十大咨询公司
  • 软件开发和网站建设哪个好dede网站本地访问速度慢
  • 平安建设网站做写手哪个网站好