2013-11-12 2 views
0

Я пытаюсь выполнить две матрицы вдоль столбцов (как [a, b] в matlab). Но я постоянно получаю ошибку:hstack throws ValueError: неправильные размеры

ValueError: arrays must have same number of dimensions

Это мой код:

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

И это выход:

(223129, 1) 
(223129, 4) 

Это мое понимание, размеры штрафа , Что здесь происходит?

ответ

1

Хорошо, я нашел свою ошибку. Одной из моих матриц была разреженная матрица, а затем вы получили ошибку, которую я имел.

1

a и b есть различные размеры. Do a.ndim или b.ndim. Результаты должны быть равны.

Если a и b имеют размеры, которые вы, кажется, указываете, то они должны работать.

например.

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) и (223129,4)} для a и b, что вы указали.