Root mean square of a function in python
I'm going to assume that you want to compute the expression given by the following pseudocode:
ms = 0for i = 1 ... N ms = ms + y[i]^2ms = ms / Nrms = sqrt(ms)
i.e. the square root of the mean of the squared values of elements of y
.
In numpy, you can simply square y
, take its mean and then its square root as follows:
rms = np.sqrt(np.mean(y**2))
So, for example:
>>> y = np.array([0, 0, 1, 1, 0, 1, 0, 1, 1, 1]) # Six 1's>>> y.size10>>> np.mean(y**2)0.59999999999999998>>> np.sqrt(np.mean(y**2))0.7745966692414834
Do clarify your question if you mean to ask something else.
You could use the sklearn function
from sklearn.metrics import mean_squared_errorrmse = mean_squared_error(y_actual,[0 for _ in y_actual], squared=False)