ホームページ  >  記事  >  バックエンド開発  >  Numpy を使用して 1D 配列のローリング ウィンドウ標準偏差を計算するにはどうすればよいですか?

Numpy を使用して 1D 配列のローリング ウィンドウ標準偏差を計算するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-28 03:23:30284ブラウズ

How to Calculate Rolling Window Standard Deviations on 1D Arrays Using Numpy?

1D 配列のローリング ウィンドウ標準偏差に Numpy を使用する

numpy では、ローリング ウィンドウ関数を計算する必要がある操作が頻繁に発生します。 1D 配列上で。簡単なアプローチは、指定された Python コード スニペットに示すように、ループを使用することです。ただし、Numpy の强大機能を使用すると、より効率的な方法が利用できます。

Numpy でローリング ウィンドウ操作を実行する鍵は、ブログ投稿で紹介された Rolling_window 関数を利用することにあります。この関数は、入力配列を一連の重なり合うウィンドウに再形成し、効果的に 2D 配列を作成します。この 2D 配列に関数を適用すると、ウィンドウベースの計算が可能になります。

ローリング標準偏差を計算するには、numpy.std 関数を rolling_window 関数の出力に適用するだけです。次の変更されたコード スニペットは、このアプローチを示しています。

import numpy as np

# Define the rolling window function
def rolling_window(a, window):
    shape = a.shape[:-1] + (a.shape[-1] - window + 1, window)
    strides = a.strides + (a.strides[-1],)
    return np.lib.stride_tricks.as_strided(a, shape=shape, strides=strides)

# Input array
observations = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Calculate rolling standard deviations
stdev = np.std(rolling_window(observations, 3), 1)

# Print the results
print(stdev)

このコード スニペットは、純粋な Numpy 演算を使用して、指定された 1D 配列のローリング標準偏差を効率的に計算し、ループの必要性を排除します。

以上がNumpy を使用して 1D 配列のローリング ウィンドウ標準偏差を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。