В обширной сфере визуализации данных Python выделяется как универсальный и мощный инструмент. Он предлагает множество библиотек и функций, которые помогают создавать визуально привлекательные и информативные сюжеты. Одним из таких важных методов является построение скользящих средних. В этой статье блога мы рассмотрим различные методы построения скользящих средних с использованием Python, дополненные разговорными объяснениями и примерами кода.
Метод 1: Numpy Convolution
Первый метод предполагает использование операции свертки, предоставляемой библиотекой NumPy. Свертка позволяет нам рассчитать скользящее среднее, применяя к данным скользящее окно. Вот фрагмент кода, который поможет вам начать:
import numpy as np
import matplotlib.pyplot as plt
def plot_moving_average(data, window_size):
weights = np.repeat(1.0, window_size) / window_size
moving_average = np.convolve(data, weights, 'valid')
plt.plot(moving_average)
# Example usage:
data = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
window_size = 3
plot_moving_average(data, window_size)
plt.show()
Метод 2: Pandas Rolling
Если вы работаете с табличными данными, библиотека Pandas предлагает удобный метод под названием rollingдля расчета скользящих средних. Этот метод эффективно и плавно выполняет расчет скользящего окна. Вот пример:
import pandas as pd
import matplotlib.pyplot as plt
def plot_moving_average(data, window_size):
rolling_avg = data.rolling(window=window_size).mean()
plt.plot(rolling_avg)
# Example usage:
data = pd.Series([5, 10, 15, 20, 25, 30, 35, 40, 45, 50])
window_size = 3
plot_moving_average(data, window_size)
plt.show()
Метод 3. Пользовательский расчет
Для более детального контроля над расчетом скользящего среднего вы можете реализовать свою собственную пользовательскую функцию. Этот подход позволяет вам определять конкретные правила или включать дополнительную логику. Вот пример:
import matplotlib.pyplot as plt
def moving_average(data, window_size):
moving_avg = []
for i in range(len(data) - window_size + 1):
window = data[i:i+window_size]
avg = sum(window) / window_size
moving_avg.append(avg)
return moving_avg
# Example usage:
data = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
window_size = 3
moving_avg = moving_average(data, window_size)
plt.plot(moving_avg)
plt.show()
Благодаря богатой экосистеме библиотек Python построение скользящих средних становится проще простого. Предпочитаете ли вы использовать свертку NumPy, функцию прокрутки Pandas или реализовать свои собственные вычисления, вы можете легко добавить эту мощную технику визуализации в свой набор инструментов для анализа данных. Используя скользящие средние, вы можете сгладить зашумленные данные, выявить тенденции и получить ценную информацию. Итак, давайте раскроем возможности Python для построения скользящих средних!