2と2の2つの行列AとBがあるとしましょう。水平に積み重ねてA [:、1]をB [ :、0]となるので、得られる行列Cは2×3であり、C[:,0] = A[:,0], C[:,1] = A[:,1] + B[:,0], C[:,2] = B[:,1]
となる。さらに一歩進んで、対角に積み重ねてC[0:2,0:2] = A, C[1:2,1:2] = B, C[1,1] = A[1,1] + B[0,0]
となるようにします。この場合、Cは3×3である。このルーチンをハードコーディングするのは難しいことではありませんが、私のメモリがうまく機能するならば、MATLABも同様の機能を持っているので興味があります。python numpyスタック行列
-1
A
答えて
0
直接的アプローチがコピーまたは標的への2つのアレイを追加することである。
In [882]: A=np.arange(4).reshape(2,2)
In [883]: C=np.zeros((2,3),int)
In [884]: C[:,:-1]=A
In [885]: C[:,1:]+=A # or B
In [886]: C
Out[886]:
array([[0, 1, 1],
[2, 5, 3]])
別のアプローチは、端部にパッドA
までに開始時にパッドB
、および合計です。便利なpad
機能がありますが、それ以上の高速化はありません。
斜め
In [887]: C=np.zeros((3,3),int)
In [888]: C[:-1,:-1]=A
In [889]: C[1:,1:]+=A
In [890]: C
Out[890]:
array([[0, 1, 0],
[2, 3, 1],
[0, 2, 3]])
再び2つの配列はpad
ことと添加可能性があります。
私はこれを行うための特別な機能に気づいていません。たとえあったとしても、おそらく同じことをするでしょう。これは、コンパイルされたバージョンを正当化するための一般的な操作ではありません。
ラッピング要素行列を加算することで、有限要素スパース行列を構築しました。 MATLABとscipyの両方のための疎フォーマットは、これを容易にします(重複座標は合計されます)。
============
In [896]: np.pad(A,[[0,0],[0,1]],mode='constant')+np.pad(A,[[0,0],[1,0]],mode='
...: constant')
Out[896]:
array([[0, 1, 1],
[2, 5, 3]])
In [897]: np.pad(A,[[0,1],[0,1]],mode='constant')+np.pad(A,[[1,0],[1,0]],mode='
...: constant')
Out[897]:
array([[0, 1, 0],
[2, 3, 1],
[0, 2, 3]])
これを行うための特別なMATLABコードは何ですか?
はオクターブに私が見つかりました:
prepad(A,3,0,axis=2)+postpad(A,3,0,axis=2)
関連する問題
- 1. Pythonのnumpyのスタック行単一の列
- 2. numpy配列のスタックのサイズ
- 3. Python numpy行列代入値
- 4. 配列からのnumpy行列 - python
- 5. NumPyスタックに配列を追加する
- 6. Pythonのnumpyの:私はnumpyの行列Xを有する
- 7. Python、numpyソート配列
- 8. NumPy行列をNumPy配列にコピー
- 9. numpyの行列
- 10. python numpy euclidean行ベクトルの行列間の距離計算
- 11. Python:2D Numpy Array(行列) - 負の数の和を求める(行)
- 12. Pythonのnumpy行列のすべての行を連結する
- 13. python numpy:行列の行全体を計算する
- 14. Pythonの文字列にnumpy行列を型キャストする
- 15. MATLAB行列オブジェクトをPython NumPy配列に変換する
- 16. Pythonのnumpyのシャノンエントロピー配列
- 17. Python numpy配列の乗算
- 18. Python:交差インデックスnumpy配列
- 19. Python numpy配列の連結
- 20. Pythonのnumpyの:配列
- 21. Python/numpyの配列分割
- 22. 行列を稠密行列の列のパワーにPythonでnumpyを使用
- 23. 私は2つのnumpyの行列を持つ2つのnumpyの行列を
- 24. numpy行列データセットの変換
- 25. numpyの - スタック、異なるタイプの2つの配列
- 26. Python Numpy配列内の各行に回転行列を適用する
- 27. 効率的なKroneckerプロダクト、単位行列と規則的な行列 - NumPy/Python
- 28. ブートストラップ/基礎スタック行/列
- 29. スパース行列とnumpy配列の使用
- 30. Numpyドットプロダクト小行列用MemoryError