Библиотеки Python для Data Science: от NumPy до Pandas и не только

Раздел: Data Science -> Pandas и NumPy

Основные библиотеки для анализа данных

Как загрузить и изучить табличные данные с помощью Pandas?

Pandas предоставляет структуры DataFrame и Series для удобной работы с таблицами. Основное применение: чтение CSV, Excel, SQL и первичный анализ. Цель: быстрый осмотр данных и базовые статистики.

import pandas as pd
df = pd.read_csv('data.csv')
print(df.head())
print(df.describe())
print(df.info())

Python для анализа данных (python для анализа данных)

   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9

              A         B         C
count  3.000000  3.000000  3.000000
mean   2.000000  5.000000  8.000000
...

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   A       3 non-null      int64
 1   B       3 non-null      int64
 2   C       3 non-null      int64

анализ больших данных python (анализ больших данных в python)

Типичные ошибки при загрузке:

  • Разделитель не запятая - указать sep=';' или sep='\t'.
  • Проблемы с кодировкой - добавить encoding='utf-8'.
  • Нехватка памяти - использовать dtype={'col': 'float32'} или chunksize.

Как выполнить быстрые числовые вычисления с NumPy?

NumPy - основа для численных массивов. Цель: векторизованные операции без циклов. Используется для предобработки признаков, генерации случайных чисел, линейной алгебры.

import numpy as np
arr = np.array([[1,2],[3,4]])
print(arr * 2 + 1)

анализ данных python pdf (анализ данных pdf в python)

[[3 5]
 [7 9]]

Python анализ данных и машинное обучение (анализ данных и машинное обучение на python)

Частая проблема:

Создание копий вместо ссылок - использовать np.asarray() для предотвращения копирования, когда это необходимо.

Как провести статистический тест с SciPy?

SciPy расширяет NumPy статистическими функциями. Цель: проверка гипотез, распределения. Используется в A/B тестах, анализе нормальности.

from scipy import stats
data1 = [1,2,3,4,5]
data2 = [2,3,4,5,6]
t_stat, p_value = stats.ttest_ind(data1, data2)
print(f'p-value: {p_value:.4f}')

анализ данных с использованием python (анализ данных с использованием python)

p-value: 0.3443 (пример)

Python анализ текстовых данных (анализ текстовых данных в python)

Ошибка: неверные предположения о гомогенности дисперсий - использовать ttest_ind(..., equal_var=False) для теста Уэлча.

Как визуализировать данные с Matplotlib и Seaborn?

Matplotlib - базовые графики, Seaborn - статистические. Цель: исследование распределений, зависимостей, выбросов.

import matplotlib.pyplot as plt
import seaborn as sns
data = [1,2,2,3,3,3,4,4,5]
sns.histplot(data)
plt.title('Распределение')
plt.show()

Python библиотеки numpy и pandas (библиотеки numpy и pandas в python)

(график не отображается в тексте, но код корректен)

библиотеки python для обработки данных (библиотеки python для обработки данных (pandas, numpy и др.))

Проблема: график не отображается в Jupyter - добавить %matplotlib inline или plt.show().

Как применить машинное обучение с Scikit-learn?

Scikit-learn предоставляет модели классификации, регрессии, кластеризации. Цель: построение предсказательных моделей. Предварительно данные должны быть в виде NumPy массивов или DataFrame.

from sklearn.linear_model import LinearRegression
import numpy as np
X = np.array([[1],[2],[3]])
y = np.array([2,4,6])
model = LinearRegression()
model.fit(X, y)
print(model.predict([[4]]))

математика и python для анализа данных (математика и python для анализа данных)

[8.]

Типичная ошибка: данные не приведены к числовому типу - использовать pd.get_dummies() для категориальных признаков.

Общие рекомендации по выбору библиотеки:

  • Pandas - для табличных данных, очистки, группировки.
  • NumPy - для численных массивов, когда нужна скорость.
  • SciPy - для научных вычислений, оптимизации, статистики.
  • Matplotlib/Seaborn - для визуализации.
  • Scikit-learn - для машинного обучения.
- приложения анализа данных на python (приложения анализа данных на python)
- работа с табличными данными python (работа с табличными данными в python)
- распределение данных python (распределение данных в python)

Расширенные примеры кода с пояснениями

Группировка и агрегация в Pandas

Группировка позволяет вычислить статистики по категориям. Цель: агрегирование больших объёмов данных.

Пример
import pandas as pd
df = pd.DataFrame({'Город': ['Москва','СПб','Москва','Казань'],
                   'Продажи': [100,150,200,50]})
grouped = df.groupby('Город')['Продажи'].agg(['sum','mean','count'])
print(grouped)
        sum  mean  count
Город                   
Казань   50  50.0      1
Москва  300 150.0      2
СПб     150 150.0      1

Ошибка: использование agg с несуществующим столбцом - проверить имена через df.columns.

Слияние DataFrame (join)

Объединение таблиц по ключу. Цель: соединение данных из разных источников.

Пример
df1 = pd.DataFrame({'ID': [1,2,3], 'Имя': ['Анна','Борис','Виктор']})
df2 = pd.DataFrame({'ID': [1,2,4], 'Зарплата': [50000,60000,70000]})
merged = pd.merge(df1, df2, on='ID', how='left')
print(merged)
   ID    Имя  Зарплата
0   1   Анна   50000.0
1   2  Борис   60000.0
2   3  Виктор       NaN

Проблема: ключи с разными названиями - использовать left_on='ID1', right_on='ID2'.

Сводные таблицы (pivot table)

Pivot table создаёт кросс-таблицу с агрегацией. Цель: анализ многомерных данных.

Пример
df = pd.DataFrame({'Год': [2020,2020,2021,2021],
                   'Товар': ['A','B','A','B'],
                   'Продажи': [100,200,150,250]})
pt = pd.pivot_table(df, values='Продажи', index='Год', columns='Товар', aggfunc='sum')
print(pt)
Товар    A    B
Год           
2020   100  200
2021   150  250

Работа с датами в Pandas

Преобразование строк в даты и извлечение компонентов. Цель: временные ряды, фильтрация по периодам.

Пример
df = pd.DataFrame({'date': ['2023-01-01','2023-02-15','2023-03-20']})
df['date'] = pd.to_datetime(df['date'])
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
print(df)
        date  year  month
0 2023-01-01  2023      1
1 2023-02-15  2023      2
2 2023-03-20  2023      3

Ошибка: неверный формат - указать format='%Y-%m-%d' для нестандартных дат.

Broadcasting в NumPy

Операции с массивами разных размеров. Цель: избежать циклов.

Пример
import numpy as np
A = np.array([[1,2,3],[4,5,6]])
B = np.array([10,20,30])
print(A + B)
[[11 22 33]
 [14 25 36]]

Проблема: несовместимые формы - проверить shape и при необходимости добавить ось через np.newaxis.

Условная замена с np.where

Быстрая замена значений по условию. Цель: бинарная обработка.

Пример
arr = np.array([1,2,3,4,5])
result = np.where(arr > 3, 'большой', 'маленький')
print(result)
['маленький' 'маленький' 'маленький' 'большой' 'большой']

Применение функции к столбцу DataFrame

Использование apply для пользовательских преобразований. Цель: сложные маппинги.

Пример
df = pd.DataFrame({'x': [1,2,3]})
df['x_squared'] = df['x'].apply(lambda v: v**2)
print(df)
   x  x_squared
0  1          1
1  2          4
2  3          9

Предупреждение: apply может быть медленным на больших данных - рассмотреть векторизованные альтернативы.

Библиотеки Python для обработки данных (Pandas, NumPy и др.) - comments

En
библиотеки python для обработки данных (python)