2017-06-28 14 views
0

私はこのように、3Dマトリックスaを持っている:2次元行列を別の3次元行列にPythonで追加するには?

a=np.array([[[1,2],[2,3]],[[3,4],[4,5]]]) 
[ 
[[1 2],[2 3]] 
[[3 4],[4 5]] 
] 
a.shape 
(2, 2, 2) 

は今、私はこの配列に[[5,6],[6,7]]のように、別の要素を追加します。 ので、新しい配列は次のようになります。

[ 
[[1, 2],[2, 3]] 
[[3, 4],[4, 5]] 
[[5, 6],[6, 7]] 
] 
a.shape 
(3, 2, 2) 

これを行うための最善の方法は何ですか? (私は最善の方法を必要とするので、私は大きなデータセットで働いている)

+0

?期待されるo/p? – Divakar

+0

@Divakar:最初の次元に要素を追加します。問題の身体についてもっと説明しました。 – moh

答えて

1

使用np.vstack縦にそうように、None/np.newaxisとの最初の軸として、新たな軸を追加することによって、3Dに二番目の配列を拡張した後、スタックに -

np.vstack((a,b[None])) 

サンプル実行 -

In [403]: a 
Out[403]: 
array([[[1, 2], 
     [2, 3]], 

     [[3, 4], 
     [4, 5]]]) 

In [404]: b 
Out[404]: 
array([[5, 6], 
     [6, 7]]) 

In [405]: np.vstack((a,b[None])) 
Out[405]: 
array([[[1, 2], 
     [2, 3]], 

     [[3, 4], 
     [4, 5]], 

     [[5, 6], 
     [6, 7]]]) 
1

あなたはマトリックスに追加するnp.appendを使用することができます。

a = np.array([[[1,2],[2,3]],[[3,4],[4,5]]]) 
a = np.append(a, [[[5,6],[6,7]]], axis=0) 

寸法が正しくなるように、2番目の部分の周囲に余分な角括弧を追加する必要があることに注意してください。また、axisを使用する必要があります。または、すべてが線形配列に平坦化されます。追加するにはどうすればよい

1

するTry numpy.append

import numpy as np 
a=np.array([[[1,2],[2,3]],[[3,4],[4,5]]]) 
b=np.array([[3,4],[4,5]]) 
np.append(a,[b[:,:]],axis=0) 
関連する問題