个性化阅读
专注于IT技术分析

SciPy稀疏矩阵介绍和示例

稀疏矩阵允许数据结构存储较大的稀疏矩阵, 并提供执行复杂矩阵计算的功能。简而言之, 假设你有一个包含数百个元素的2D矩阵, 其中只有几个元素包含非零值。当使用排序方法对矩阵进行排序时, 我们将浪费大量的零空间。

稀疏数据结构允许我们仅存储非零值(假定其余均为零)。

SciPy中的稀疏矩阵类型

表示稀疏矩阵的方法有很多种。 SciPy提供了其中的七个。

  • 块稀疏行矩阵(BSR)
  • 座标清单矩阵(COO)
  • 压缩稀疏列矩阵(CSC)
  • 压缩稀疏行矩阵(CSR)
  • 带有对角线存储的稀疏矩阵(DIA)
  • 基于密钥字典的稀疏矩阵(DOK)
  • 基于行的链表稀疏矩阵(LIL)

考虑以下示例:

import numpy as np
from scipy.sparse import random
np.random.seed(10)
# Generate a random binary sparse matrix
matrix = random(5, 5, format='csr', density=0.25)
# Substitute all non zero values with index number
matrix.data[:] = np.arange(1, matrix.data.shape[0]+1)
# We can access and modify these arrays:
print(matrix.toarray())
print("The data is", matrix.data)
print("Cell which consits the non-zero values", matrix.indptr)

输出

[[0. 1. 0. 0. 0.]
 [2. 0. 0. 0. 0.]
 [3. 0. 4. 0. 0.]
 [0. 0. 5. 0. 0.]
 [0. 0. 0. 6. 0.]]
The data is [1. 2. 3. 4. 5. 6.]
Cell which consits the non-zero values [0 1 2 4 5 6]

赞(0)
未经允许不得转载:srcmini » SciPy稀疏矩阵介绍和示例

评论 抢沙发

评论前必须登录!