2017-03-19 14 views
1

私は環境のマップを入力する必要があるプログラムを使用しています。入力フォームは次のようになります。グリッドワールドのサイズを1000倍に増やす方法

self.map=[ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 
         [1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1], 
         [1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], 
         [1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 1, 1], 
         [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1], 
         [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] 

与えられた構造体のサイズを1000倍にして構造の形式を維持したいと考えています。構造サイズを増やした後は、18000x6000になります。コードは次のようになりますthis

誰かが私にこのやり方を達成する方法を提案できますか?

+0

を使用することができますが投稿してください。私は私の質問を編集します。 – papabiceps

答えて

1

あなたが本当にPythonのリストを使用したい場合(numpyのの配列は、大きな行列のために優れている)あなたは

repeatfactor = 1000 
mat = self.map # copy reference, not data 
m = len(mat) 
n = len(mat[0]) 
newmatrix = [[mat[r % m][c % n] 
    for c in range(n * repeatfactor)] 
    for r in range(m * repeatfactor)] 
1

np.repeatを各軸に1回ずつ2回お試しください。一番きれいではありませんが、うまくいくはずです。したがって、このような何か:私はもう情報を追加する必要がある場合

map_array = np.array(self.map) 
map_array = np.repeat(map_array, 1000, axis=0) 
map_array = np.repeat(map_array, 1000, axis=1) 
関連する問題