Pythonで関数の二乗平均平方根を計算したいと思います。私の関数は、y = f(x)のような単純な形式です。 xとyは配列です。Pythonでの関数の二乗平均平方根
私はNumpy and Scipy Docsを試しましたが、何も見つかりませんでした。
Pythonで関数の二乗平均平方根を計算したいと思います。私の関数は、y = f(x)のような単純な形式です。 xとyは配列です。Pythonでの関数の二乗平均平方根
私はNumpy and Scipy Docsを試しましたが、何も見つかりませんでした。
私はあなたの次の擬似コードによって与えられた式を計算したいと仮定するつもりです:
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
は、あなたの質問に明確でください何か他に尋ねる。
ありがとうございました。私はまだ何か不思議です。 Wikipediaの定義部分によれば、RMSは実際には限界です。私はそれが続けていることを意味します。しかし、あなたの答えでは、第1度だけが考慮されました。何とか計算中に残りを無視していると思いますか? あなたの答えが機能します。しかし、私はこれを尋ねて、全体の主題を明らかにする。 –
@通常、正弦波のRMS値を計算しようとしている場合(つまり、f(x)が正弦関数)、またはそのようなものがある場合は、_integration_を実行する必要があります。これはここでの合計として概算されます。あなたがあなたの合計のために極小間隔を取る必要があるので、制限が入ります。言い換えれば、 'x'でより細かい解像度を使用すると、RMS値をより正確に見積もることができます。 – Praveen
警告:numpyでは、数値が型(Pythonのdtype)に比べて大きすぎると、power関数が負の値を返すことがあります。これを避けるために、値をキャストすると便利なことがあります。例:>> np.sqrt(np.mean(y.astype(np.dtype(np.int64))** 2))。コードではあまりいいことではありませんが、それは仕事をするでしょう! – PatriceG
計算しようとしている関数は何ですか? yのルート二乗平均値? – Praveen
サンプル配列と期待されるソリューションを追加できれば助けになるでしょう... – Praveen