Smooth It Out: скользящие средние значения в Python

Привет! Сегодня мы собираемся погрузиться в мир скользящих средних в Python. Но прежде чем мы перейдем к коду, давайте быстро объясним, что такое скользящее среднее. Скользящее среднее, также известное как скользящее среднее, – это статистический расчет, который сглаживает колебания данных за определенный период времени.

В Python есть несколько мощных библиотек, таких как Pandas и NumPy, которые упрощают расчет скользящих средних. Итак, давайте рассмотрим несколько различных способов добиться этого!

Метод 1: использование функции rollingPandas

Pandas предоставляет встроенную функцию rolling, которую можно использовать для расчета скользящих средних. Вот простой пример:

import pandas as pd
# Create a sample DataFrame
data = {'values': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
# Calculate a rolling average over a window of 2
df['rolling_avg'] = df['values'].rolling(window=2).mean()
print(df)

Выход:

   values  rolling_avg
0      10          NaN
1      20         15.0
2      30         25.0
3      40         35.0
4      50         45.0

Метод 2: использование функции convolveNumPy

NumPy предоставляет мощную функцию под названием convolve, которую можно использовать для расчета скользящего среднего. Взгляните на этот пример:

import numpy as np
# Create a sample array
data = np.array([10, 20, 30, 40, 50])
# Calculate a rolling average over a window of 3 using convolution
window = np.ones(3) / 3
rolling_avg = np.convolve(data, window, mode='valid')
print(rolling_avg)

Выход:

[20. 30. 40.]

Метод 3: использование функции rolling_mean(устарело)

В старых версиях Pandas существовала устаревшая функция rolling_mean, предоставлявшая аналогичную функциональность. Однако вместо этого рекомендуется использовать функцию rolling. Вот пример использования rolling_mean:

import pandas as pd
# Create a sample Series
data = pd.Series([10, 20, 30, 40, 50])
# Calculate a rolling average over a window of 2 using rolling_mean (deprecated)
rolling_avg = pd.rolling_mean(data, window=2)
print(rolling_avg)

Выход:

0     NaN
1    15.0
2    25.0
3    35.0
4    45.0
dtype: float64

Помните, что функция rollingв Pandas сейчас является рекомендуемым способом расчета скользящих средних.

Подведение итогов

В этой статье мы рассмотрели три различных метода расчета скользящих средних в Python. Мы использовали функцию rollingPandas, функцию convolveNumPy и кратко упомянули устаревшую функцию rolling_mean.

Используя эти методы, вы сможете легко сгладить данные и получить представление о долгосрочных тенденциях. Независимо от того, анализируете ли вы финансовые данные или работаете с данными временных рядов, скользящие средние – это удобный инструмент, который обязательно должен быть в вашем наборе инструментов для анализа данных.

Так что давайте, попробуйте эти методы и начните получать средние значения! Приятного кодирования!