У меня есть два ndarray x, y форма x (7,200) и форма y (200,1), но когда я использую matmul, я получаю сообщение об ошибке, которое говорит, что форма y равна (1,1)
Я пытался использовать матрицу, а не ndarray, но получил тот же результат
def solve(X,Y):
x = np.asmatrix(X)
x = np.transpose(x)
x = np.insert(x,0,1,axis=1)
xt = x.T
xtx = np.matmul(xt,x)
y = np.asmatrix(Y)
y = np.transpose(y)
print('y',y.shape)
pinv = np.linalg.pinv(xtx)
print('pinv',pinv.shape)
print('xt',xt.shape)
z = np.matmul(pinv,xt)
print('z',z.shape)
B = np.matmul(z, y)
print('B',B.shape)
return B
('y', (200, 1))
('pinv', (8, 8))
('xt', (8, 200))
('z', (8, 200))
('B', (8, 1))
Traceback (most recent call last):
File "project1.py", line 79, in <module>
Z = X*B+resi
File "/home/yiming/.local/lib/python2.7/site-packages/numpy/matrixlib/defmatrix.py", line 226, in __rmul__
return N.dot(other, self)
ValueError: shapes (7,200) and (1,1) not aligned: 200 (dim 1) != 1 (dim 0)