week2/README.md

106 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.