[译]coo_matrix

2024-03-30 10:18
文章标签 coo matrix

本文主要是介绍[译]coo_matrix,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

class scipy.sparse.coo_matrix(arg1, shape=None, dtype=None, copy=False)

坐标格式(COOrdinate format)的稀疏矩阵。coo就是COOrdinate的缩写

又名’ijv’或’triplet’格式。

举例说明如下:

  1. coo_matrix(D)

    密集矩阵

  2. coo_matrix(S)

    另一个稀疏矩阵S,等价于S.tocoo()

  3. coo_matrix((M, N), [dtype])

    构造一个(M, N)结构的0矩阵,dtype可选,默认’d’

  4. coo_matrix((data, (i, j)), [shape=(M, N)])

    从三种方式构造:

  • 作用

稀疏矩阵可用于算数运算:支持加减乘除以及矩阵运算。

COO形式优点:
  1. 稀疏格式间的快速转换
  2. 允许复制元素
  3. 与CSR/CSC形式间快速互换
COO形式缺点:(不能直接支持)
  1. 算术运算
  2. 切片
  • 推荐用法

  1. COO是构建稀疏矩阵的快速形式
  2. 只有矩阵构建后,再转成CSR、CSC形式用于快速算术及矩阵运算
  3. 默认情况下,当转成CSR、CSC形式,(i,j)元素副本会被求和。这有助于快速构建有限元素矩阵。
  • Examples

>>> from scipy.sparse import coo_matrix
>>> coo_matrix((3,4), dtype=np.int8).todense()
matrix([[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]], dtype=int8)

>>>

>>> row  = np.array([0,3,1,0])
>>> col  = np.array([0,3,1,2])
>>> data = np.array([4,5,7,9])
>>> coo_matrix((data,(row,col)), shape=(4,4)).todense()
matrix([[4, 0, 9, 0],[0, 7, 0, 0],[0, 0, 0, 0],[0, 0, 0, 5]])

>>>

>>> # example with duplicates
>>> row  = np.array([0,0,1,3,1,0,0])
>>> col  = np.array([0,2,1,3,1,0,0])
>>> data = np.array([1,1,1,1,1,1,1])
>>> coo_matrix((data, (row,col)), shape=(4,4)).todense()
matrix([[3, 0, 1, 0],[0, 2, 0, 0],[0, 0, 0, 0],[0, 0, 0, 1]])
  • Methods

Methods意义
tocsc()Compressed Sparse Column 形式的副本
tocsr()Compressed Sparse Row 形式的副本
todense([order, out])返回这个矩阵的稠密表示

这篇关于[译]coo_matrix的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/861221

相关文章

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需

73. Set Matrix Zeros

题目: 解答: 提供了两种解题思路: 第一种,使用两个数组,分别标记每一行、每一列是否有0的存在,然后再去更新二维数组。 第二种,使用两个变量brow,bcol分别标记第0行,第0列是否存在0,然后使用每一行、每一列的第一个单元存储是否该行、该列存在0. 代码: class Solution {public:// 方法一void setZeroes(vector<vector<i

Error: label vector and instance matrix must be double的解决方法

在使用uci下载的数据时,建模时出现这个错误的解决方法 首先现在UCI上面下载数据 然后右键另存为就行了。这样我们就从UCI里面下载到了训练数据 在matlab 点 导入数据,数据类型要记得选第二个, 如果选择最后一个table就会出现这个问题 最后附上代码 %%之前先import wine.date IMPORTED DATA 设为Numeric Matrix (数值矩

python 实现matrix exponentiation矩阵求幂算法

matrix exponentiation矩阵求幂算法介绍 矩阵求幂算法(Matrix Exponentiation)是一种通过利用矩阵乘法的结合律来高效地计算矩阵的幂的算法。这种方法特别适用于在算法竞赛和计算机科学领域中解决需要快速计算矩阵幂的问题,如求解线性递推关系、图论中的路径计数等。 基本思想 矩阵求幂算法的基本思想类似于整数快速幂算法(快速幂算法),通过递归或迭代的方式将矩阵幂的计

[LeetCode] 240. Search a 2D Matrix II

题:https://leetcode.com/problems/search-a-2d-matrix-ii/description/ 题目 Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties: Integers i

[LeetCode] 566. Reshape the Matrix

题:https://leetcode.com/problems/reshape-the-matrix/description/ 题目 In MATLAB, there is a very useful function called ‘reshape’, which can reshape a matrix into a new one with different size but keep

UVa 11992 Fast Matrix Operations 线段树

UVa 11992 Fast Matrix Operations 题目大意:有一个r行c列的全0矩阵,支持三种操作: 1 x1 y1 x2 y2 v 子矩阵(x1,y1,x2,y2)的所有元素增加v(v > 0)。 2 x1 y1 x2 y2 v 子矩阵(x1,y1,x2,y2)的所有元素设为v(v > 0)。 3 x1 y1 x2 y2    查询子矩阵(x1,y1,x2,y2

【HDU】4965 Fast Matrix Calculation 矩阵快速幂

传送门:【HDU】4965 Fast Matrix Calculation 题目分析:因为比赛的时候写的太匆忙。。写的不堪入目,所以赛后重写了一次,顺便就贴一下了。 因为A*B=C,所以C^(N*N-1) = A*B*A*B*A*...*B*A*B,因为满足结合律所以变成A*( (B*A)^(N*N-2) )*B,因为中间得到的矩阵最大不超过K(K<=6),所以可以对中间的矩阵快速幂,然

01 Matrix

Input:[[0,0,0],[0,1,0],[1,1,1]]Output:[[0,0,0],[0,1,0],[1,2,1]] Given a matrix consists of 0 and 1, find the distance of the nearest 0 for each cell. The distance between two adjacent cells is 1.

Matrix:重塑APM领域,以简驭繁的性能监控新纪元

在数字化转型的浪潮中,应用程序的性能监控(APM)已成为企业IT架构中不可或缺的一环。随着业务复杂度的提升和用户对体验要求的日益增高,如何高效、精准地监控并优化应用性能,成为了每个开发者和技术团队面临的重大挑战。正是在这样的背景下,腾讯微信团队推出的Matrix APM系统,以其独特的设计理念和强大的功能特性,为APM领域带来了一股清新的风。 1、Matrix:轻量级与高度可