2017-08-29 5 views
1

私は次元が(10, 48, 48, 1)のnumpy配列を持っているとしましょう。ここでは10は画像の数を表します。画像は48x48で、1つのチャンネルは1です。これらはグレースケールの画像なので、私の配列を表現したい。もちろんこれはできませんが、0で他の2つのチャンネルを初期化したいと思います。だから私のアレイ状が(10,48,48,3)イメージアレイにチャネルを追加するにはどうすればよいですか?

答えて

1

-

z = np.zeros(imgs.shape[:-1] + (2,), dtype=imgs.dtype) 
imgs_out = np.concatenate((imgs, z), axis=-1) 

のサンプル実行使用するnp.pad

pad = ((0,0),)*3 + ((0,2),) 
imgs = np.pad(imgs, pad, 'constant', constant_values = 0) 
imgs.shape 

(10, 288, 288, 3) 

ゼロを使​​用して値を繰り返すこともできます。np.broadcast_toを使用することもできます(書きたい場合はコピーを作成してください)

1

ゼロの配列を作成し、最後の軸に沿って連結となるように、どのように私は、他の2つの次元を追加することができます - あなたもできる

In [157]: imgs = np.random.randint(0,255,(10,48,48,1)) # input 

In [158]: z = np.zeros(imgs.shape[:-1] + (2,), dtype=imgs.dtype) 

In [159]: np.concatenate((imgs, z), axis=-1).shape 
Out[159]: (10, 48, 48, 3)