python中函数的均方根

时间:2016-12-04 21:06:37

标签: python arrays python-3.x numpy scipy

我想在Python中计算函数的均方根。我的函数是一个简单的形式,如y = f(x)。 x和y是数组。

我尝试了Numpy and Scipy Docs并且找不到任何东西。

2 个答案:

答案 0 :(得分:12)

我将假设您要计算以下伪代码给出的表达式:

ms = 0
for i = 1 ... N
    ms = ms + y[i]^2
ms = ms / N
rms = sqrt(ms)

即。 y元素平方值均值的平方根。

在numpy中,您可以简单地将y平方,取其mean,然后取其square root,如下所示:

rms = np.sqrt(np.mean(y**2))

所以,例如:

>>> y = np.array([0, 0, 1, 1, 0, 1, 0, 1, 1, 1])  # Six 1's
>>> y.size
10
>>> np.mean(y**2)
0.59999999999999998
>>> np.sqrt(np.mean(y**2))
0.7745966692414834

如果您想提出其他问题,请澄清您的问题。

答案 1 :(得分:0)

你可以使用 sklearn 函数

from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_actual,[0 for _ in y_actual], squared=False)