2016-05-11 10 views
4

私はいくつかの画像を扱いたいと思っていますが、問題は2つの画像が両方とも106 x 106ピクセルで、いくつかは色で、そしていくつかは白黒です。 2つだけ(2)寸法のNumpyはnp配列から次元を削除します

1:

(106106)

と3(3)

(106,106,3)で1

方法があり、私ができることですこの最後の次元を取り除く?

私はnp.deleteを試しましたが、動作していないようです。

np.shape(np.delete(Xtrain[0], [2] , 2)) 
Out[67]: (106, 106, 2) 

答えて

13

あなたはスライス表記を使用することもできます。(106, 106, 3)の形状がシェイプ(106, 106)を持っていることの3セットを持っていることを意味し

x = np.zeros((106, 106, 3)) 
result = x[:, :, 0] 
print result.shape 

プリント

(106, 106) 

。したがって、最後の次元を「ストリップ」するには、これらのうちの1つを選択するだけです(スライス表記の機能です)。

任意のスライスを保存できます。あなたが望むものを指定しなかったので、私は任意に0を維持することを選択します。したがって、result = x[:, :, 1]result = x[:, :, 2]も望ましい形状になります。それはすべて、どのスライスを保持する必要があるかによって異なります。

+0

'(106,106,3)という形は、形が(106、106)'のものが3組あることを意味します。このような配列を見た場合:(3、106、106)、あなたはどのように見えるでしょうか? –

+0

106で3つ、106で3つあるとはどういうことですか? –

+2

まあ、一般的にはそうではありませんが、私はこの特定の質問から(やや)明確であると思いました。 OPは彼が(106,106)の形を保つことに関わっていることを暗示しているように見えた – mwm314

関連する問題