С какими библиотеками работал в Python
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Python библиотеки в моей практике
Основной стек для анализа данных
За 10+ лет я использовал практически все основные библиотеки Python для аналитики. Расскажу про те, что я применял регулярно и глубоко.
1. Pandas — король анализа данных
Использование: ежедневно, на все 100%
Это основной инструмент для работы с табличными данными. Практически каждый анализ начинается с pandas.
import pandas as pd
# Загрузка данных
df = pd.read_csv('data.csv')
df = pd.read_sql('SELECT * FROM users', connection)
# Базовая разведка
print(df.info()) # типы и пропуски
print(df.describe()) # статистика
# Группировка и агрегация
df.groupby('month')['revenue'].sum()
df.pivot_table(values='sales', index='category', aggfunc='mean')
# Фильтрация
df[df['age'] > 18]
df.query('age > 18 and city == "Moscow"')
# Преобразования
df['revenue_per_item'] = df['revenue'] / df['items']
df['date'] = pd.to_datetime(df['date'])
Ключевые навыки:
- Merges и joins (левые, правые, внутренние)
- Groupby и aggregation функции
- Pivot tables
- Reshape и melt для преобразования данных
- Временные ряды и resample
2. NumPy — основа всего
Использование: часто, особенно с большими массивами
Нужен для работы с массивами и математических операций.
import numpy as np
# Работа с массивами
arr = np.array([1, 2, 3, 4, 5])
mean_value = np.mean(arr)
std_value = np.std(arr)
# Матричные операции
matrix = np.random.randn(1000, 100)
corr_matrix = np.corrcoef(matrix.T)
# Статистические функции
percentiles = np.percentile(data, [25, 50, 75])
3. Matplotlib & Seaborn — визуализация
Использование: часто, для создания графиков
Эти библиотеки использую для быстрой визуализации во время исследования. Для production дашбордов использую Tableau/Looker.
import matplotlib.pyplot as plt
import seaborn as sns
# Гистограмма
plt.hist(df['age'], bins=30)
plt.xlabel('Age')
plt.ylabel('Count')
plt.show()
# Scatter plot
plt.scatter(df['x'], df['y'])
# Heatmap корреляций
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
plt.show()
# Распределение по категориям
sns.boxplot(data=df, x='category', y='value')
4. Scikit-learn — машинное обучение
Использование: регулярно для ML моделей
Использую для кластеризации, классификации, регрессии.
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, roc_auc_score
# Нормализация
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# K-means кластеризация
kmeans = KMeans(n_clusters=3, random_state=42)
df['cluster'] = kmeans.fit_predict(X_scaled)
# Случайный лес
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
accuracy = rf.score(X_test, y_test)
# Cross-validation
from sklearn.model_selection import cross_val_score
scores = cross_val_score(rf, X, y, cv=5)
5. SciPy — продвинутая статистика
Использование: при гипотезах и статистических тестах
from scipy import stats
# t-тест
t_stat, p_value = stats.ttest_ind(group_a, group_b)
# Тест Шапиро-Уилка на нормальность
stat, p = stats.shapiro(data)
# Chi-square для категориальных данных
chi2, p = stats.chi2_contingency(contingency_table)[:2]
# Корреляция Спирмена
corr, p = stats.spearmanr(x, y)
# Percentiles
percentile_95 = stats.scoreatpercentile(data, 95)
6. SQLAlchemy — работа с БД
Использование: когда нужна ORM и чистые SQL запросы
from sqlalchemy import create_engine, text
engine = create_engine('postgresql://user:pass@localhost/db')
# SQL запрос
with engine.connect() as conn:
result = conn.execute(text("""
SELECT user_id, SUM(amount) as total
FROM transactions
GROUP BY user_id
"""))
df = pd.DataFrame(result)
# Или через pandas
df = pd.read_sql_table('users', engine)
7. Statsmodels — регрессия и временные ряды
Использование: когда нужна статистика регрессии, ARIMA и т.п.
import statsmodels.api as sm
from statsmodels.tsa.arima.model import ARIMA
# Линейная регрессия со статистикой
model = sm.OLS(y, X)
results = model.fit()
print(results.summary()) # полная статистика
# ARIMA для временных рядов
model = ARIMA(timeseries, order=(1, 1, 1))
results = model.fit()
forecast = results.get_forecast(steps=12)
8. Plotly — интерактивные графики
Использование: когда нужны интерактивные дашборды
import plotly.express as px
import plotly.graph_objects as go
# Быстрый график
fig = px.scatter(df, x='age', y='income', color='category')
fig.show()
# Более сложный график
fig = go.Figure()
fig.add_trace(go.Scatter(x=dates, y=values, mode='lines'))
fig.update_layout(title='Revenue Over Time')
9. Jupyter Notebooks — разведочный анализ
Использование: для всех analytical projects
# Интерактивный анализ
%matplotlib inline
%load_ext autoreload
%autoreload 2
# Красивый вывод pandas
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', 100)
10. Дополнительные библиотеки
Pytest — для unit тестов
def test_calculate_revenue():
assert calculate_revenue([10, 20]) == 30
Requests — для API запросов
import requests
response = requests.get('https://api.example.com/data')
data = response.json()
Logging — для логирования процессов
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
logger.info('Анализ начат')
Мой типичный рабочий день в Python
- Pandas — загружу данные, исследую структуру
- NumPy — если нужны матричные операции
- Matplotlib/Seaborn — быстро визуализирую паттерны
- Scipy — если нужна статистика
- Scikit-learn — если нужна модель
- Plotly — красивая визуализация для босса
Навыки, которые отличают опытного аналитика
- Знаю
apply(),map(),vectorizationвместо циклов - Могу оптимизировать код для больших датасетов (100M+ строк)
- Понимаю memory footprint и когда использовать
daskвместо pandas - Умею профилировать код (
%timeit,cProfile) - Знаю, когда использовать NumPy вместо pandas для скорости
Что не использую и почему
- TensorFlow/PyTorch — не нужны для классического анализа
- Django/Flask — для production API, не для аналитики
- Spark — редко нужен для типичного анализа
Вся эта экосистема позволяет от загрузки данных до production-ready insights оставаться внутри Python.