📅  最后修改于: 2023-12-03 15:09:32.230000             🧑  作者: Mango
当我们需要将一个numpy的ndarray转换为稀疏矩阵(csr_matrix)时,可以使用scipy库中的sparse模块。
import numpy as np
from scipy.sparse import csr_matrix
arr = np.array([[1, 0, 2], [0, 3, 0], [4, 0, 5]])
print(arr)
输出:
array([[1, 0, 2],
[0, 3, 0],
[4, 0, 5]])
csr = csr_matrix(arr)
print(csr)
输出:
(0, 0) 1
(0, 2) 2
(1, 1) 3
(2, 0) 4
(2, 2) 5
csr_matrix 转换后的结果,依然保留了 ndarray 的非零元素,同时也记录了它们在矩阵中的位置。我们可以通过以下属性来查看稀疏矩阵的信息。
print(csr.shape) # (3,3)
print(csr.data) # [1 2 3 4 5]
print(csr.indices) # [0 2 1 0 2]
print(csr.indptr) # [0 2 3 5]
在需要处理大规模矩阵时,稀疏矩阵是非常有用的数据结构。在numpy ndarray 转换成稀疏矩阵过程中,我们需要使用 scipy.sparse 库的 csr_matrix 函数。转换后的稀疏矩阵具有很多优秀的性能指标,使用它可以有效地优化相关算法的运算速度及内存消耗。