7

Numpy を使用して Python で次のコードを作成しました。

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

最初に作成せずp2に同じ値を持つスパース行列を取得するにはどうすればよいですか?pp

4

2 に答える 2

10

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)
于 2010-09-12T16:06:30.363 に答える
1

scipy.sparse モジュールを使用すると、

p = sparse.dia_matrix(1.0 / np.array(x), shape=(len(x), len(x)));
于 2010-12-10T22:13:48.377 に答える