私は、いくつかのプログラムパッケージで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. ctypes配列からnumpyにデータを取得する
- 3. Pandas/Numpy配列の列から行列を取得
- 4. NumPyのオブジェクトの配列から属性を取得する
- 5. numpy配列からインデックス値を取得する
- 6. python/numpy:2D配列の列長を取得する方法は?
- 7. numpy 2d配列の列のランクを取得する方法は?
- 8. 与えられたストライド/ stepsizeでnumpy配列からサブ配列を取る
- 9. SciPyを使用しないNumPy配列の3D補間
- 10. 配列の配列から値を取得する方法は?
- 11. numpy配列から列を抽出する - unhashable配列
- 12. マニュアルインストールSciPy、NumPy、MatPlotlib
- 13. SciPy/NumPyインポートガイド
- 14. jsonオブジェクト配列から文字列を取得するには?
- 15. Swift 3:文字列から配列を取得するには
- 16. R、python/numpy/scipy、C++、matlabの配列のシリアライズフォーマット
- 17. jsonから配列を取得する
- 18. シーケンスを配列から取得する
- 19. 配列から値を取得する
- 20. コレクションから配列を取得する
- 21. MongoIdを配列から取得する
- 22. 配列からオブジェクトを取得する
- 23. strings.xmlから配列を取得する
- 24. numpyの日時配列からyearwise dayを取得するにはどうすればよいですか?
- 25. NumPyとSciPyはどれくらいCにありますか?
- 26. numpy配列(sub2ind)の線形インデックスを取得する方法
- 27. numpy配列の複数軸の平均を取得する
- 28. numpyでnd配列の終わりからスライスを取る
- 29. RGBA numpy配列をバイナリ2d numpy配列に変換する
- 30. NumPy配列にNumPy配列を追加する方法
これはLOですか、https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.sparse.linalg.LinearOperator.html – hpaulj
小さな具体例を追加する必要があります。 – hpaulj
* "私はLinearOperatorをいくつかのプログラムパッケージで構築しました" *どのパッケージ?あなたが持っている 'LinearOperator'について何を知っていますか? –