ezrabru:
私は、同じ形状の4つの正方形アレイを有します
array1 = 1*np.ones((10,10))
array2 = 2*np.ones((10,10))
array3 = 3*np.ones((10,10))
array4 = 4*np.ones((10,10))
私は、次のようなインターリーブされたモザイクパターンにおける一つの大きな配列にそれらを再結合します:
result = np.asarray([[1,2,1,2,...,1,2],\
[3,4,3,4,...,3,4],\
[1,2,1,2,...,1,2],\
...
[3,4,3,4,...,3,4]])
どこにresult
二回、元の個々の画像のように、両方の次元に大きな通りです。
これを行うための効率的な方法はありますか?
私の質問を説明するために、私は一定の値を含む配列を使用しますが、現実には、これらの4つの配列は、異なる画像になります。
カールKnechtel:
二つの共通のnumpyの中でデータをインターレースためのアプローチです。
A)を割り当てるデータが行くべき場所に対応するブランク結果配列のスライス、各ソース:
result = np.zeros((20, 20)) # allocate space
result[::2, ::2] = array1 # put those values in the appropriate spots
result[::2, 1::2] = array2
result[1::2, ::2] = array3
result[1::2, 1::2] = array4
単一のアレイで一緒にデータを貼り、その後、葉はそれがインターレースような方法でデータを平らにするために再形成するために積み重ねB)を使用。これは通常、試行錯誤のビットを必要としますが、REPLで少し遊んでた後、私は思い付きました:
result = np.hstack((np.dstack((array1, array2)), np.dstack((array3, array4)))).reshape(20, 20)