2015-12-18 11 views
5

Aの形状は(480, 640, 3)、配列Bの形状は(480, 640)です。2D配列を3D配列に追加し、3次元目を延長する

どうすればこの2つを形状(480, 640, 4)の配列として追加できますか?

私はを試みたが、axisオプションはValueError: all the input arrays must have same number of dimensionsを起こしながら、それは、次元を保持しません。

答えて

9

使用dstack

>>> np.dstack((A, B)).shape 
(480, 640, 4) 

これはアレイが寸法の異なる数を有し、第3の軸に沿って配列をスタックケースを扱います。

>>> np.append(A, np.atleast_3d(B), axis=2).shape 
(480, 640, 4) 
+2

または、最も基本的な方法を使用する: 'NPを

そうでない場合は、appendまたはconcatenateを使用するために、あなた自身B 3次元作り、あなたが上でそれらに参加したい軸を指定する必要があります。 (@、A、B [...、なし]、軸= 2) ' – hpaulj

+0

@hpauljエラーを取得しています。TypeError:concatenate()は最大で2つの引数をとります(3が与えられます) ' – piepi

+0

@piepi、 docsを連結しますか?彼らは私の古いコメントよりも優先されます。いずれにせよ、私は 'np.concatenate([A、B [...、None]]、axis = 2)'と書くべきだった。つまり、配列をリストに入れてください。 – hpaulj

関連する問題