Numpy を使用して Python で次のコードを作成しました。
p = np.diag(1.0 / np.array(x))
最初に作成せずp2
に同じ値を持つスパース行列を取得するにはどうすればよいですか?p
p
Numpy を使用して Python で次のコードを作成しました。
p = np.diag(1.0 / np.array(x))
最初に作成せずp2
に同じ値を持つスパース行列を取得するにはどうすればよいですか?p
p
scipy.sparse.spdiags
(これは多くのことを行うため、最初は混乱するかもしれません)、scipy.sparse.dia_matrix
および/または を使用しますscipy.sparse.lil_diags
。(疎行列を入れたい形式に応じて...)
例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)
scipy.sparse モジュールを使用すると、
p = sparse.dia_matrix(1.0 / np.array(x), shape=(len(x), len(x)));