我有一个shape矩阵[1000,500]
,我想沿第二维对矩阵进行归一化。以下实现正确吗?
def norm(x):
return (x - np.mean(x)) / (np.std(x) + 1e-7)
for row_id in range(datamatrix.shape[0]):
datamatrix[row_id,:] = norm(datamatrix[row_id,:])
您的实现确实会沿行轴进行归一化(我不确定您所说的第二维是什么意思,因为行通常是矩阵的第一维,而numpy从维0开始)。您不需要包括冒号,因为它隐含了您想要所有的行。
切记float32
在数据矩阵中使用dtype而不是整数dtype,因为它不会自动进行类型转换。
可能会使用更有效或更干净的实现sklearn.preprocessing.normalize
。
但是请注意,您使用的是标准分数归一化,假设您的数据集呈正态分布。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句