numpy 广播在我认为应该的时候不起作用?

numpy broadcasting doesn't work when i think it should?

我正在尝试从原始矩阵中减去平均值(跨行),如下所示:

matrix = matrix - np.mean(matrix,axis=1)

(其中矩阵为 57 x 150)但出现以下错误:

ValueError: operands could not be broadcast together with shapes (57,150) (57,) 

我很困惑。我认为广播应该解决这个确切的问题?有没有一种方法可以使用广播从矩阵中减去每一行的平均值,而无需执行某些 expand_dimstile 操作?谢谢

问题出在这里

`np.mean(matrix,axis=1)`

意思是return你一个值而不是两个值,尝试使用下面的代码...

m = np.mean(matrix,axis=1, keepdims=True)
matrix = matrix - m

然后就可以了..