私は、いくつかのプログラムパッケージでLinearOperatorを構築しました。私はiLUプレコンディショナーを計算し、それをscipyソルバーで使いたいと思っています。 問題は、プレコンディショナー計算のための入力オブジェクトのタイプです。 "spilu"関数を使いたい場合は、numpy配列を入力に使うべきですが、私はLinearOperatorを持っています! したがって、LinearOperatorをnumpy配列に変換するにはどうすればよいですか?または、iLU前提条件を計算する別の方法は存在しますか?scipy LinearOperatorからnumpy配列を取得するには?
1
A
答えて
1
LinearOperator
に関連付けられたマトリックスを得る方法の1つは、それを恒等行列で乗算することです。この例では
、op
形状とLinearOperator
である(3,3):
In [104]: op * np.eye(op.shape[1], dtype=op.dtype)
Out[104]:
array([[1, 2, 0],
[3, 4, 5],
[0, 6, 7]])
警告:
In [103]: op
Out[103]: <3x3 MyOperator with dtype=int64>
ここop
に関連する実際の行列です! np.eye()
は高密度配列を作成し、上記の乗算は高密度 numpy配列を返します。 LinearOperator
の形状が大きすぎる場合は、メモリが不足する可能性があります。
中密度の配列を生成せずにLinearOperator
からスパースの行列にするのはおそらく可能ですが、もう少しコードが必要になります。あまりにも多くの時間を費やす前に、あなたが持っている具体的なLinearOperator
の属性とメソッドを確認してください。それは既に疎フォーマットである内部データを有するかもしれない。
関連する問題
- 1. JPype JArrayからnumpy配列を取得
- 2. numpy配列から別の配列のサイズを取得する
- 3. ctypes配列からnumpyにデータを取得する
- 4. numpy配列からデータを取得し、データフレームに格納する
- 5. Pandas/Numpy配列の列から行列を取得
- 6. numpy配列からインデックス値を取得する
- 7. NumPyのオブジェクトの配列から属性を取得する
- 8. Scipyスパース行列乗算がnumpy配列よりもはるかに遅い
- 9. numpy 2d配列の列のランクを取得する方法は?
- 10. python/numpy:2D配列の列長を取得する方法は?
- 11. テキストファイルからnumpy配列(行列)を高速に読み取る
- 12. Openshift 3コンテナを取得してnumpyとscipyをインストールする
- 13. Scipyの疎行列から一意の行を取得する
- 14. インデックス配列を使用してnumpy配列からサブ配列を得る方法をベクトル化するには
- 15. numpy配列関数の後にDataframeのインデックスを取得する
- 16. 与えられたストライド/ stepsizeでnumpy配列からサブ配列を取る
- 17. 配列の配列から値を取得する方法は?
- 18. SciPyを使用しないNumPy配列の3D補間
- 19. numpy配列から列を抽出する - unhashable配列
- 20. jsonオブジェクト配列から文字列を取得するには?
- 21. Swift 3:文字列から配列を取得するには
- 22. MongoIdを配列から取得する
- 23. 配列から値を取得する
- 24. jsonから配列を取得する
- 25. コレクションから配列を取得する
- 26. 配列から値を取得する
- 27. シーケンスを配列から取得する
- 28. 配列から値を取得する
- 29. 配列からオブジェクトを取得する
- 30. strings.xmlから配列を取得する
これはLOですか、https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.sparse.linalg.LinearOperator.html – hpaulj
小さな具体例を追加する必要があります。 – hpaulj
* "私はLinearOperatorをいくつかのプログラムパッケージで構築しました" *どのパッケージ?あなたが持っている 'LinearOperator'について何を知っていますか? –