106 lines
3.6 KiB
Markdown
106 lines
3.6 KiB
Markdown
1. Подготовка окружения
|
||
Перед началом работы необходимо:
|
||
|
||
Создать и активировать виртуальное окружение (venv или conda).
|
||
Установить необходимые библиотеки: JupyterLab, numpy, pandas, matplotlib, seaborn, tqdm.
|
||
Инициализировать репозиторий Git, добавить .gitignore и README.md.
|
||
Зафиксировать первый коммит с базовой настройкой проекта.
|
||
Эти шаги были рассмотрены на первой неделе. Проверьте, что всё настроено правильно.
|
||
|
||
2. Основы работы с JupyterLab
|
||
Запустите JupyterLab командой:
|
||
jupyter lab
|
||
Создайте новый Notebook (блокнот) и сохраните его под названием week2_analysis.ipynb.
|
||
Добавьте несколько ячеек с кодом, выполните их и убедитесь, что результаты отображаются правильно.
|
||
Используйте Markdown-ячейки для пояснений и заголовков в вашем блокноте.
|
||
Почему JupyterLab?
|
||
Позволяет быстро изменять код и видеть результаты без повторного запуска всего скрипта.
|
||
Удобен для работы с данными, пошагового анализа и визуализации.
|
||
Можно комбинировать код, текст, формулы и графики в одном документе.
|
||
Попробуйте изменить несколько значений в коде и запустить ячейки снова. Так вы увидите, как разные параметры влияют на результат.
|
||
|
||
3. Работа с pandas и numpy
|
||
pandas: работа с таблицами
|
||
Прочитайте и выполните следующий код:
|
||
|
||
import pandas as pd
|
||
|
||
# Создадим DataFrame
|
||
data = {
|
||
"Имя": ["Анна", "Борис", "Виктор", "Галина"],
|
||
"Возраст": [21, 22, 23, 24],
|
||
"Баллы": [89, 76, 95, 82]
|
||
}
|
||
df = pd.DataFrame(data)
|
||
|
||
print("Первый взгляд на данные:")
|
||
print(df.head())
|
||
print(df.info())
|
||
print(df.describe())
|
||
print(df.isnull().sum())
|
||
Попробуйте самостоятельно (каждый пункт в новых блоках):
|
||
|
||
Поместить df в последнюю строчку блока.
|
||
Добавить новый столбец с вычисляемыми значениями (df["Новый столбец"] = df["Баллы"] * 1.1).
|
||
Применить .groupby() и .agg(), чтобы сгруппировать данные.
|
||
Фильтровать записи по условиям (df[df["Возраст"] > 21]).
|
||
numpy: массивы и вычисления
|
||
import numpy as np
|
||
|
||
arr = np.array([1, 2, 3, 4, 5])
|
||
print("Сумма элементов массива:", np.sum(arr))
|
||
print("Среднее значение:", np.mean(arr))
|
||
print("Медиана:", np.median(arr))
|
||
print("Стандартное отклонение:", np.std(arr))
|
||
Попробуйте:
|
||
|
||
Создать двумерный массив (np.array([[1, 2], [3, 4]])).
|
||
Использовать np.linspace(), np.random.randn(), np.dot().
|
||
4. Визуализация данных
|
||
matplotlib: построение графиков
|
||
import matplotlib.pyplot as plt
|
||
|
||
x = np.linspace(0, 10, 100)
|
||
y = np.sin(x)
|
||
|
||
plt.plot(x, y, label='sin(x)')
|
||
plt.xlabel("X")
|
||
plt.ylabel("Y")
|
||
plt.title("График синуса")
|
||
plt.legend()
|
||
plt.grid()
|
||
plt.show()
|
||
Попробуйте:
|
||
|
||
Изменить цвет (color='red').
|
||
Добавить несколько графиков (plt.plot(x, np.cos(x), label='cos(x)')).
|
||
Использовать bar, scatter, hist.
|
||
seaborn: работа с графиками данных
|
||
import seaborn as sns
|
||
|
||
df["Категория"] = ["A", "B", "A", "B"] # догадайтесь откуда df и её содержимое взялось
|
||
sns.boxplot(x="Категория", y="Баллы", data=df)
|
||
plt.show()
|
||
Попробуйте:
|
||
|
||
Построить histplot, scatterplot.
|
||
Добавить sns.pairplot(df), sns.heatmap(df.corr(), annot=True).
|
||
5. Прогресс-бар с tqdm
|
||
from tqdm import tqdm
|
||
import time
|
||
|
||
for i in tqdm(range(100)):
|
||
time.sleep(0.01) # Симуляция долгого процесса
|
||
Попробуйте:
|
||
|
||
Использовать tqdm для обработки данных (tqdm(df.iterrows())).
|
||
Добавить кастомные стилизации (tqdm(range(100), desc='Загрузка')).
|
||
6. Самостоятельное задание
|
||
Задание: Найдите свободные данные (например, на https://www.kaggle.com/ или https://datahub.io/) и выполните их анализ.
|
||
|
||
Загрузите данные в pandas (pd.read_csv() или pd.read_excel()).
|
||
Проведите базовый анализ (df.info(), df.describe()).
|
||
Постройте минимум 3 разных графика (histplot, scatterplot, boxplot).
|
||
Используйте tqdm, если работаете с большими данными.
|
||
Сохраните результаты в Jupyter Notebook и зафиксируйте изменения в Git.
|