Python numpy.linalg.lstsqr错误

Python numpy.linalg.lstsqr错误,python,numpy,Python,Numpy,我有两个矩阵,模型和观测矩阵。模型_con为15x1096,并填充了从0到大约5的浮点值。观察到的尺寸为1096,浮动值在大致相同的范围内。当我运行此代码时: for j in range(1000): N = [] for i in range(800): N.append(randint(0,1095)) Cs = model_con[:,N] Os = observed_con[N] k = np.linalg.lstsq(Cs,O

我有两个矩阵,模型和观测矩阵。模型_con为15x1096,并填充了从0到大约5的浮点值。观察到的尺寸为1096,浮动值在大致相同的范围内。当我运行此代码时:

for j in range(1000):
    N = []
    for i in range(800):
        N.append(randint(0,1095)) 
    Cs = model_con[:,N]
    Os = observed_con[N]
    k = np.linalg.lstsq(Cs,Os)[0]
我收到了错误:

numpy.linalg.linalg.LinAlgError: Incompatible dimensions

正如您所写的,Cs有形状(15800),Os有形状(800,)。但是lstsq要求Os是形状(15),因为您试图找到Cs x=Os的最小二乘解(最小化| | Cs x-Os | ^2除以x)。如果你把800改为15,你会发现你不会得到任何错误,但我不知道你到底想解决什么问题

在文档a中,在本例中,Cs具有形状(M,N)和b,或者Os具有形状(M,)


假警报,我在创建矩阵时发现一个错误。对不起大家