Все курсы > Вводный курс > Занятие 7
Структура Питона
Прежде чем мы перейдем к анализу данных, несколько слов о структуре Питона. Питон состоит из базового функционала (его мы изучали до сих пор) и дополнительных библиотек. Библиотеки в свою очередь состоят из модулей. В этих модулях есть инструменты для создания веб-сайтов, разработки игр и многого другого.
Нас будут интересовать те библиотеки и модули, с помощью которых можно анализировать данные, строить графики и производить математические вычисления. Приведу несколько примеров:

Пусть многообразие инструментов вас не пугает. Мы будем изучать их по мере необходимости. На сегодняшнем занятии мы познакомимся с двумя библиотеками: Pandas и Matplotlib.
По традиции вначале откроем ноутбук к этому занятию⧉
Библиотека Pandas
Библиотека Pandas используется для анализа данных в форме таблиц или, как еще говорят, датафреймов. Для того чтобы воспользоваться библиотекой Pandas, ее нужно предварительно импортировать. Делается это довольно просто. Напишем:
1 |
import pandas as pd |
В данном случае мы сказали компьютеру: «Загрузи дополнительную библиотеку Pandas и создай для нее псевдоним или сокращение pd». Сокращение может быть любым, однако для основных библиотек уже давно появились устоявшиеся псевдонимы и будет разумно использовать именно их.
Создадим первую таблицу или датафрейм на основе данных наших старых знакомых, Ивана Ивановича и Ивана Петровича. Вначале, вспомним, что это за данные:

Теперь то же самое, но с помощью кода:
1 2 3 4 5 6 7 8 9 10 11 12 |
bank_db = { 'Name' : ['Иван Иванович', 'Иван Петрович'], 'Age' : [0, 1], 'Experience' : [4, 7], 'Salary' : [75, 95], 'Credit_score' : [4, 8], 'Outcome' : [0, 1] } df = pd.DataFrame(bank_db) print(df) |
Результат:
1 2 3 |
Name Age Experience Salary Credit_score Outcome 0 Иван Иванович 0 4 75 4 0 1 Иван Петрович 1 7 95 8 1 |
Что мы сделали?
Шаг 1. Мы взяли данные в форме словаря и вложенных в него списков и поместили в переменную bank_db от английского bank database. Как я уже говорил, чтобы не запутаться, переменным лучше давать осмысленные названия.
Шаг 2. Далее мы передали наш словарь bank_db в pd.DataFrame() и сохранили результат (наш датафрейм) в переменную df.
Теперь эти данные удобно анализировать. Например, можно с помощью одной строчки кода посчитать средний доход (среднее арифметическое) наших заемщиков:
1 2 |
# посчитаем средний доход заемщиков: (75 + 95) / 2 df['Salary'].mean() |
Должно получиться 85.
В данном случае мы взяли столбец Salary датафрейма df и применили к нему метод .mean().
Теперь отложим на время библиотеку Pandas и попробуем построить график. Для этого нам понадобится библиотека Matplotlib, а точнее ее модуль pyplot.
Библиотека Matplotlib
Вначале импортируем модуль pyplot из библиотеки Matplotlib под псевдонимом plt. Опять же псевдоним может быть любым, но лучше оставить общепринятое сокращение.
1 |
import matplotlib.pyplot as plt |
Теперь построим наш первый график. Например, на горизонтальной оси x отложим доход человека, а на вертикальной оси его уровень счастья.
Для этого воспользуемся функцией plot и передадим ей два аргумента: список значений дохода [70, 80, 100, 150, 300] и список со значениями уровня счастья [1, 4, 6, 9, 16].
1 2 3 4 5 6 7 8 9 |
# передаем функции plot() библиотеки Matplotlib два значения: доход и уровень счастья plt.plot([70, 80, 100, 150, 300], [1, 4, 6, 9, 16]) # добавим подписи для наглядности plt.xlabel('Доход, тыс. рублей') # для оси x plt.ylabel('Счастье, вымышленные единицы') # для оси y plt.title('Уровень дохода и счастье') # заголовок plt.show() # посмотрим, что у нас получилось |
Результат:

Что ж, график наглядно показывает одновременный рост обоих показателей. Это было ожидаемо. В статистике такое изменение двух величин называют положительной корреляцией.
При этом важно помнить, что мы не доказали, что уровень счастья определяется доходом. Почему, обсудим в следующем разделе.
Несколько слов про print() и plt.show()
Как вы возможно заметили, Google Colab умеет выводить результат исполнения кода без print() и plt.show(). Другими словами, вы можете написать 7+7 или print(7+7) и в обоих случаях программа выведет результат без ошибок. То же самое и с графиками и командой plt.show(). Но есть один нюанс.
Если внутри одной ячейки вы указали две операции, например, сложения, 7+7 и 8+4, Colab выведет результат только второй операции.
1 2 3 |
# две операции в одной ячейке без print() 7 + 7 8 + 4 |
1 |
12 |
Чтобы вывести обе суммы, нужно использовать print().
1 2 3 |
# то же самое, но используя print() print(7 + 7) print(8 + 4) |
1 2 |
14 12 |
Похожая ситуация с графиками. Без plt.show() Colab постарается разместить все данные на одном графике.
1 2 3 |
# без plt.show() plt.plot([70, 80, 100, 150, 300], [1, 4, 6, 9, 16]) plt.plot([39, 50, 80, 100, 200, 300], [1, 4, 7, 9, 18, 22]) |

Если вам нужно два разных графика, лучше использовать plt.show().
1 2 3 4 5 |
# то же самое, но используя plt.show() plt.plot([70, 80, 100, 150, 300], [1, 4, 6, 9, 16]) plt.show() plt.plot([39, 50, 80, 100, 200, 300], [1, 4, 7, 9, 18, 22]) plt.show() |


Вопросы для закрепления
Как в библиотеке Pandas называется табличная структура данных?
Посмотреть правильный ответ
Ответ: датафрейм (DataFrame)
Какая библиотека и какой модуль в Питоне используются для построения графиков?
Посмотреть правильный ответ
Ответ: модуль pyplot библиотеки matplotlib
Дополнительные упражнения⧉ вы найдете в конце ноутбука.
Вы отлично поработали!
Поздравляю с завершением раздела, посвященного программированию. Вы познакомились с базовым функционалом Питона и двумя самыми важными дополнительными библиотеками: Pandas и Matplotlib.
Теперь пора переходить ко второй составляющей машинного обучения — математике.
На следующем занятии мы рассмотрим описательную статистику, то есть продолжим анализировать данные, только уже не с точки зрения технических инструментов Питона, а с точки зрения сути этого процесса.