當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy sparse.coo_matrix用法及代碼示例


本文簡要介紹 python 語言中 scipy.sparse.coo_matrix 的用法。

用法:

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

COOrdinate 格式的稀疏矩陣。

也稱為‘ijv’ 或‘triplet’ 格式。

這可以通過多種方式實例化:

coo_matrix(D)

其中 D 是二維 ndarray

coo_matrix(S)

與另一個稀疏數組或矩陣 S (相當於 S.tocoo())

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

構造一個形狀為 (M, N) 的空矩陣 dtype 是可選的,默認為 dtype='d'。

coo_matrix((數據, (i, j)), [形狀=(M, N)])
從三個數組構造:
  1. data[:] 矩陣的條目,以任意順序

  2. i[:] 矩陣條目的行索引

  3. j[:] 矩陣條目的列索引

其中 A[i[k], j[k]] = data[k] 。未指定形狀時,從索引數組推斷

注意

稀疏矩陣可用於算術運算:它們支持加法、減法、乘法、除法和矩陣冪。

COO格式的優勢

  • 促進稀疏格式之間的快速轉換

  • 允許重複條目(參見示例)

  • 與 CSR/CSC 格式之間的快速轉換

COO格式的缺點

  • 不直接支持:
    • 算術運算

    • slicing

預期用途

  • COO 是一種用於構建稀疏矩陣的快速格式

  • 構建 COO 矩陣後,轉換為 CSR 或 CSC 格式,以進行快速算術和矩陣向量運算

  • 默認情況下,當轉換為 CSR 或 CSC 格式時,重複的 (i,j) 條目將被匯總在一起。這有助於有效構建有限元矩陣等。 (見示例)

規範格式

  • 條目和索引按行排序,然後按列排序。

  • 沒有重複的條目(即重複的 (i,j) 位置)

  • 數據數組可以有明確的零。

例子

>>> # Constructing an empty matrix
>>> import numpy as np
>>> from scipy.sparse import coo_matrix
>>> coo_matrix((3, 4), dtype=np.int8).toarray()
array([[0, 0, 0, 0],
       [0, 0, 0, 0],
       [0, 0, 0, 0]], dtype=int8)
>>> # Constructing a matrix using ijv format
>>> 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)).toarray()
array([[4, 0, 9, 0],
       [0, 7, 0, 0],
       [0, 0, 0, 0],
       [0, 0, 0, 5]])
>>> # Constructing a matrix with duplicate indices
>>> 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 = coo_matrix((data, (row, col)), shape=(4, 4))
>>> # Duplicate indices are maintained until implicitly or explicitly summed
>>> np.max(coo.data)
1
>>> coo.toarray()
array([[3, 0, 1, 0],
       [0, 2, 0, 0],
       [0, 0, 0, 0],
       [0, 0, 0, 1]])

屬性

dtype 類型

矩陣的數據類型

shape 2元組

矩陣的形狀

ndim int

維數(始終為 2)

nnz

存儲值的數量,包括顯式零。

size

存儲值的數量。

data

矩陣的COO格式數據數組

row

矩陣的COO格式行索引數組

col

矩陣的COO格式列索引數組

has_canonical_format bool

矩陣是否有排序索引並且沒有重複項

format

矩陣的格式字符串。

T

轉置。

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.sparse.coo_matrix。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。