← Назад к вопросам

С какими библиотеками работал в Python

1.0 Junior🔥 261 комментариев
#Python и программирование

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

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

  1. Pandas — загружу данные, исследую структуру
  2. NumPy — если нужны матричные операции
  3. Matplotlib/Seaborn — быстро визуализирую паттерны
  4. Scipy — если нужна статистика
  5. Scikit-learn — если нужна модель
  6. Plotly — красивая визуализация для босса

Навыки, которые отличают опытного аналитика

  • Знаю apply(), map(), vectorization вместо циклов
  • Могу оптимизировать код для больших датасетов (100M+ строк)
  • Понимаю memory footprint и когда использовать dask вместо pandas
  • Умею профилировать код (%timeit, cProfile)
  • Знаю, когда использовать NumPy вместо pandas для скорости

Что не использую и почему

  • TensorFlow/PyTorch — не нужны для классического анализа
  • Django/Flask — для production API, не для аналитики
  • Spark — редко нужен для типичного анализа

Вся эта экосистема позволяет от загрузки данных до production-ready insights оставаться внутри Python.

С какими библиотеками работал в Python | PrepBro