まず簡単な例print(np.bmat(e.tolist()))
又はprint(np.bmat([[a,b],[c,d]]))
の結果と全く同じであるを効率的
[[ 1. 1. 2. 2.]
[ 1. 1. 2. 2.]
[ 3. 3. 4. 4.]
[ 3. 3. 4. 4.]]
を生成
import numpy as np
a = np.ones((2,2))
b = 2*np.ones((2,2))
c = 3*np.ones((2,2))
d = 4*np.ones((2,2))
e = np.array([[a,b],[c,d]])
print(np.vstack(np.array([np.hstack(e[i,:]) for i in range(2)])))
(2D numpyのアレイのnumpyのアレイからブロックnumpyのアレイを作成しますnp.bmat
がキャスト可能なnumpy行列を作成するという事実を法とし、np.asarray()
を使用します)。
しかし、私の問題は、私が大量のnumpy配列を作成しているところです(現時点では、400のように、後で400と同じようになります).2次元numpy配列と1つの大きなブロックnumpy配列を作成したいそれらから。私はこれを効率的にやりたいと考えています。可能であれば、リストとnumpy配列の間の変換を避けてください。これはより大きなループ構築の一部なので、何度も実行されます(配列は毎回異なります)。それは可能ですか?その後、
ok、多分私は明らかではない。確かに、単純な例の場合、これは機能します。しかし、私の実際の問題では、2D numpy配列の大量の配列を作成し、それをリストに変換したくない場合 – ThunderBiggi
36個の配列がある場合は、o/p配列を初期化してから繰り返しo/p配列にスライスして割り当てを行いますか? – Divakar
私はあなたが何を意味するのかよく分かりません。配列の数は、近い将来に増加する予定のパラメータの関数なので、完全に自動であるべきです。 – ThunderBiggi