Joz*_*sky 0 python numpy matrix
我想按平均值对矩阵行进行标准化,然后我为它编写了这段代码
m = np.matrix(
[[1,2,3,4,5],
[2,3,2,5,3],
[5,5,5,3,2]])
for row in m[:,]:
average = row.sum() / row.shape[1]
row = row / average
Run Code Online (Sandbox Code Playgroud)
在循环中,我将行除以平均值.但是这种划分不会改变矩阵m.如何以最简单,最智能的方式实现这种规范化?
计算行的平均值和计算m/average:
In [36]: average = m.mean(axis=1)
In [37]: average
Out[37]:
matrix([[ 3.],
[ 3.],
[ 4.]])
In [38]: m/average
Out[38]:
matrix([[ 0.33333333, 0.66666667, 1. , 1.33333333, 1.66666667],
[ 0.66666667, 1. , 0.66666667, 1.66666667, 1. ],
[ 1.25 , 1.25 , 1.25 , 0.75 , 0.5 ]])
Run Code Online (Sandbox Code Playgroud)
请注意,如果矩阵包含NaN值,则可以使用np.nanmean(m, axis=1)而不是m.mean(axis=1)计算行方式而忽略NaN.
| 归档时间: |
|
| 查看次数: |
591 次 |
| 最近记录: |