2017-11-10 10 views
0

整形及びB. Aは、X 6は1000のようになります2つのnumpyの配列を組み合わせて、私は2つのnumpyの行列Aを有する

[ [a1_1, a1_2, a1_3, a1_4, a1_5,a1_6], 
    [a2_1, a2_2, a2_3, a2_4, a2_5,a2_6], 
    [a3_1, a3_2, a3_3, a3_4, a3_5,a3_6], 
    : 
    : 
    [a1000_1, a1000_2, a1000_3, a1000_4, a1000_5,a1000_6]] 

Bは1000x6でもある等である:次いで

[ [b1_1, b1_2, b1_3, b1_4, b1_5,b1_6], 
    [b2_1, b2_2, b2_3, b2_4, b2_5,b2_6], 
    [b3_1, b3_2, b3_3, b3_4, b3_5,b3_6], 
    : 
    : 
    [b1000_1, b1000_2, b1000_3, b1000_4, b1000_5,b1000_6]] 

私は、3Dマトリックスを作成したい:、

[[[a1_1, b1_1], [a1_2, b1_2], [a1_3, b1_3], [a1_4, b1_4], [a1_5, b1_5],[a1_6, b1_6]], 
    [[a2_1, b2_1], [a2_2, b2_2], [a2_3, b2_3], [a2_4, b2_4], [a2_5, b2_5],[a2_6, b2_6]], 
    [[a3_1, b3_1], [a3_2, b3_2], [a3_3, b3_3], [a3_4, b3_4], [a3_5, b3_5],[a3_6, b3_6]], 
     : 
     : 
    [[a1000_1, b1000_1], [a1000_2, b1000_2], [a1000_3, b1000_3], [a1000_4, b1000_4], [a1000_5, b1000_5],[a1000_6, b1000_6]]] 

私は空1000x6x2行列Cを作成することができ、その後反復行列Aと:はずが見える1000x6x2を、 BでCの値を1つずつ割り当てます。しかし、私は、AとBを組み合わせ、形を変えて行列Cを得るもっとエレガントな方法があるのだろうか?ありがとう!

+0

'のC [:、:、0 ] = A'、 'C [:、:、1] = B'はすばやく簡単です。 – hpaulj

答えて

1

あなたは配列深ワイズ(第3の軸に沿って)にnumpy.dstackスタック・アレイを使用することができ

C = np.dstack((A, B)) 

またはnumpy.stack((A,B),axis=-1)


import numpy as np 
A = np.arange(6000).reshape(1000,6) 
B = np.arange(6000).reshape(1000,6) 
​ 
C = np.dstack((A, B)) 

C.shape 
# (1000, 6, 2) 

C = np.stack((A,B), axis=-1) 

C.shape 
# (1000, 6, 2) 
関連する問題