我在Python中使用Numpy编写了以下代码:

p = np.diag(1.0 / np.array(x))

如何在不先创建p2的情况下将其转换为与p具有相同值的稀疏矩阵p

最佳答案

使用 scipy.sparse.spdiags (首先会做很多事情,因此一开始可能会造成混淆), scipy.sparse.dia_matrix 和/或 scipy.sparse.lil_diags 。 (取决于format,您需要...中的稀疏矩阵)

例如。使用spdiags:

import numpy as np
import scipy as sp
import scipy.sparse

x = np.arange(10)

# "0" here indicates the main diagonal...
# "y" will be a dia_matrix type of sparse array, by default
y = sp.sparse.spdiags(x, 0, x.size, x.size)

关于python - 创建对角稀疏矩阵的有效方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3695434/

10-10 22:00