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

Numpy でループなしで 1D 配列のローリング標準偏差を効率的に計算するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 22:09:30162ブラウズ

How can I efficiently calculate rolling standard deviation for a 1D array in Numpy without loops?

Numpy での 1D 配列の効率的なローリング ウィンドウの実装

ローリング ウィンドウの概念には、データ シーケンスの反復処理と計算の適用が含まれます。指定されたウィンドウ長内のデータのサブセットに変換します。与えられたコンテキストでのタスクは、Python ループを使用せずに Numpy で 1D 配列のローリング標準偏差を計算することです。

標準偏差は Numpy.std を使用して簡単に取得できますが、ローリング ウィンドウ部分はチャレンジ。ただし、ブログ投稿で紹介されている 'rolling_window' 関数を活用することで、その機能を 1D 配列に拡張できます。

'rolling_window' 関数は、一連の重なり合うウィンドウに再配置された入力配列のビューを作成します。これらのウィンドウでの効率的な計算が容易になります。目的の関数 (この場合は Numpy.std) を各ウィンドウに適用すると、目的のローリング計算が得られます。

説明するには、次のコード スニペットを考えてみましょう。

<code class="python">import numpy as np

# Create a 1D array
observations = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

# Specify window length
window_length = 3

# Calculate rolling windows
rolling_windows = rolling_window(observations, window_length)

# Calculate rolling standard deviations
rolling_stds = np.std(rolling_windows, axis=1)

# Print the results
print("Rolling standard deviations:", rolling_stds)</code>

Inこの例では、「rolling_windows」は重複するウィンドウを表し、「rolling_stds」は計算されたローリング標準偏差を取得します。これらの計算に Numpy 関数を採用することで効率が向上し、計算における Python ループの必要性がなくなりました。

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

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