2016-05-22 16 views
1

私は行方不明のドキュメントがあるように感じますが、この具体的な例では何も見つかりません。すべてが配列の連結または積み重なりです。2 numpy配列をマージするには?

Iは、配列X及び形状の両方の配列yを有する(2,3)

X = [1,2,3]、[4,5,6]

Y = [[ 7,8,9]、[10,11,12]

x = 1 2 3 
    4 5 6 

y = 7 8 9 
    10 11 12 

Iは= [[[1この

Zのように見える形状を持つ配列Z(2,3,2)をしたいです、 7]、[2,8]、[3,9]]、[[4,10]、[5,11]、[6,12]]]

z = [1,7] [2,8] [3,9] 
    [4 10] [5 11] [6 12] 

は、基本的に各位置でx要素とy要素を結合します。

+0

あなたは 'stack'と' dstack'のためのPythonコードを見ることができます。配列の次元を拡張し、1つの軸で '連結 'します。 'stack'はこのファミリの新しい関数です。 – hpaulj

答えて

3

あなたが探している機能のようなサウンドは、stack()です。それを使用して3次元に沿って積み重ねます。

import numpy as np 

x = np.asarray([[1,2,3],[4,5,6]]) 
y = np.asarray([[7,8,9],[10,11,12]]) 
z = np.stack((x, y), 2) 
1
In [39]: z = np.concatenate((x[...,None], y[...,None]), axis=2) 

In [40]: z 
Out[40]: 
array([[[ 1, 7], 
     [ 2, 8], 
     [ 3, 9]], 

     [[ 4, 10], 
     [ 5, 11], 
     [ 6, 12]]]) 
2

あなたは二次元の行列がある場合は、numpy.dstack()を使用することができます。

z = np.dstack((x, y)) 
関連する問題