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

问题描述

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

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)`

平均值将返回一个值而不是两个值,请尝试使用以下代码...

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

然后它将起作用。