2017-05-09 20 views
0

同じ行で異なる列を含む配列のリストがあります。 配列の形状を印刷して、同じ行があることを確認しました。同じ行であるが異なる列を持つ配列のナンシー連結

print ("Type x_test : actual",type(x_dump),x_dump.shape, type(actual), actual.shape, pred.shape) 
cmp = np.concatenate([x_test,actual,pred],axis = 1) 

('Type x_test : actual', <type 'numpy.ndarray'>, (2420L, 4719L), <type 'numpy.ndarray'>, (2420L,), (2420L,)) 

これは私にエラーを与える:

ValueError: all the input arrays must have same number of dimensions 

私は、以下のコマンドを使用して、このエラーを再現してみました:

x.shape,x1.shape,x2.shape 
Out[772]: ((3L, 1L), (3L, 4L), (3L, 1L)) 

np.concatenate([x,x1,x2],axis=1) 
Out[764]: 
array([[ 0, 0, 1, 2, 3, 0], 
     [ 1, 4, 5, 6, 7, 1], 
     [ 2, 8, 9, 10, 11, 2]]) 

は、私がここに任意のエラーを取得いけません。誰も同様の問題に直面していますか?

編集1:この質問を書いた直後に、私は寸法が異なることを理解しました。 @Gearth Rees:numpy配列(R、1)と(R、)の違いを美しく説明していますhere

# Reshape and concatenate 
actual = actual.reshape(len(actual),1) 
pred = pred.reshape(len(pred),1) 

EDIT 2:Difference between numpy.array shape (R, 1) and (R,)の重複としてこの回答を閉じるためにマーキングを使用して固定

+0

問題は何ですか?結果は正しいようです。あなたは何をしようとしているのかもっと正確にすることができますか? – fonfonx

+0

@fonfonx私の最初のコマンドがエラーを出しています。形状も(2420L、1L)ではなく、(2420L、1L)です。たとえx_dump.reshape(2420,1)を使っても、それはうまく動作しません。 x_dump.shapeでcol値が空白になるのはなぜですか – Tammy

+1

"形状も(2420L、)であり、(2420L、1L)ではありません" - これが問題です。 '(2420L、)'の形を持つように形を変える必要があります(2420L、1)。 – Eric

答えて

-2

EDIT

これを掲示した後、OPはエラーを考え出しました。これは、形状(R、1)対(R)のコンストラクトを見る必要がなければ、無視することができます。いずれにせよ、それはダウン有権者に練習スペースを与えるでしょう。

オリジナル

あなたの形状が与えられた場合、答えは正しいです。

a = np.arange(3).reshape(3,1) 

b = np.arange(12).reshape(3,4) 

c = np.arange(3).reshape(3,1) 

np.concatenate([a, b, c], axis=1) 
Out[4]: 
array([[ 0, 0, 1, 2, 3, 0], 
     [ 1, 4, 5, 6, 7, 1], 
     [ 2, 8, 9, 10, 11, 2]]) 

a 
Out[5]: 
array([[0], 
     [1], 
     [2]]) 

b 
Out[6]: 
array([[ 0, 1, 2, 3], 
     [ 4, 5, 6, 7], 
     [ 8, 9, 10, 11]]) 

c 
Out[7]: 
array([[0], 
     [1], 
     [2]]) 
関連する問題