0

列に沿って 2 つの行列を連結しようとしました (matlab の [a,b] として)。しかし、エラーが発生し続けます:

ValueError: arrays must have same number of dimensions

この私のコード:

print a.shape
print b.shape 
X= np.hstack([b,a])

そして、これは出力です:

(223129, 1)
(223129, 4)

私の理解では、寸法は問題ありません。ここで何がうまくいかないのですか?

4

2 に答える 2

1

a次元数bが異なります。または. a.ndim_ b.ndim結果は等しいはずです。

あなたが示しているab思われる寸法があれば、それはうまくいくはずです。

例えば

a=np.ones((5,1))
b=np.ones((5,4))
np.hstack([b,a])
array([[ 1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.]])

同じ形状 {(223129,1) and (223129,4)} を使用するab、あなたが示したように機能します。

于 2013-11-12T07:55:08.273 に答える
1

わかりました、エラーが見つかりました。私の行列の 1 つは疎な行列だったので、エラーが発生しました。

于 2013-11-12T08:11:48.507 に答える