Основы Python для Data Science
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабын онлайн тегін оқу  Основы Python для Data Science

 

Кеннеди Берман
Основы Python для Data Science
2023

Переводчик С. Черников


 

Кеннеди Берман

Основы Python для Data Science. — СПб.: Питер, 2023.

 

ISBN 978-5-4461-2251-6

© ООО Издательство "Питер", 2023

 

Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.

 

Посвящается Татьяне, Итте и Мэйпл, которая, кажется, все еще прячется под моей кроватью.

Предисловие

Язык Python создан давно и применяется в самых различных сферах. Изначально он задумывался Гвидо ван Россумом в 1989 году в качестве инструмента для системного администрирования, как альтернатива Bash-скриптам и программам на C1. С момента выхода в 1991 году Python эволюционировал и стал использоваться в разных сферах: от веб-разработки, кино, управления и науки до бизнеса2.

Впервые я познакомился с Python, работая в киноиндустрии. Мы применяли его в разных отделах для управления данными и их автоматизации. В последнее же десятилетие этот язык стал доминирующим инструментом для дата-сайентистов.

Этому поспособствовали две разработки: Jupyter Notebook и мощные сторонние библиотеки. В 2001 году Фернандо Перес создал проект IPython, интерактивную оболочку Python, вдохновленную блокнотами Maple и Mathematica3. К 2014 году часть проекта, посвященная им, была выделена в проект Jupyter. Эти блокноты отлично подходят для научной и статистической работы.

В это же время под Python создавались сторонние библиотеки для научных и статистических вычислений. Увеличение числа приложений значительно повысило функциональные возможности, доступные программисту Python. Благодаря специализированным пакетам для решения разных задач, от открытия веб-сокетов до обработки исходных текстов, начинающему разработчику доступно даже больше, чем нужно.

Этот проект был детищем Ноя Гифта4. Работая преподавателем, он обнаружил, что у студентов, записавшихся на курс Data Science, недостаточно ресурсов для изучения тех частей Python, которые им нужны. Было много общих книг по Python и Data Science, но не было литературы для изучения основ Python именно в рамках Data Science. Это я и попытался реализовать здесь. Моя книга не будет обучать Python для настройки веб-страниц или выполнения системного администрирования. Она не предназначена и для обучения Data Science. Здесь будет рассказано об основах Python, необходимых для изучения науки о данных.

Я надеюсь, это руководство окажется для вас полезным и позволит вам расширить свои знания в области Data Science.

Примеры кода

Большую часть кода из примеров в этой книге можно найти на сайте GitHub по адресу https://github.com/kbehrman/foundation-python-for-data-science.

1 https://docs.python.org/3/faq/general.html#why-was-python-created-in-the-first-place.

2 https://www.python.org/success-stories/.

3 http://blog.fperez.org/2012/01/ipython-notebook-historical.html.

4 https://noahgift.com.

Язык Python создан давно и применяется в самых различных сферах. Изначально он задумывался Гвидо ван Россумом в 1989 году в качестве инструмента для системного администрирования, как альтернатива Bash-скриптам и программам на C1. С момента выхода в 1991 году Python эволюционировал и стал использоваться в разных сферах: от веб-разработки, кино, управления и науки до бизнеса2.

Этот проект был детищем Ноя Гифта4. Работая преподавателем, он обнаружил, что у студентов, записавшихся на курс Data Science, недостаточно ресурсов для изучения тех частей Python, которые им нужны. Было много общих книг по Python и Data Science, но не было литературы для изучения основ Python именно в рамках Data Science. Это я и попытался реализовать здесь. Моя книга не будет обучать Python для настройки веб-страниц или выполнения системного администрирования. Она не предназначена и для обучения Data Science. Здесь будет рассказано об основах Python, необходимых для изучения науки о данных.

Этому поспособствовали две разработки: Jupyter Notebook и мощные сторонние библиотеки. В 2001 году Фернандо Перес создал проект IPython, интерактивную оболочку Python, вдохновленную блокнотами Maple и Mathematica3. К 2014 году часть проекта, посвященная им, была выделена в проект Jupyter. Эти блокноты отлично подходят для научной и статистической работы.

https://noahgift.com.

https://www.python.org/success-stories/.

http://blog.fperez.org/2012/01/ipython-notebook-historical.html.

Язык Python создан давно и применяется в самых различных сферах. Изначально он задумывался Гвидо ван Россумом в 1989 году в качестве инструмента для системного администрирования, как альтернатива Bash-скриптам и программам на C1. С момента выхода в 1991 году Python эволюционировал и стал использоваться в разных сферах: от веб-разработки, кино, управления и науки до бизнеса2.

https://docs.python.org/3/faq/general.html#why-was-python-created-in-the-first-place.

Благодарности

Идея этой книги принадлежит Ною Гифту. Именно он определил необходимость специализированного введения в Python для студентов, изучающих Data Science. Спасибо тебе, Ной. Отдельная благодарность Колину Эрдману, который, будучи научным редактором, обратил внимание на важные детали. Спасибо команде издательства Pearson, в том числе Малобике Чакраборти, которая взяла на себя руководство моим проектом, Марку Ренфроу, который помог реализовать его, и Лоре Левин, которая помогла его запустить.

Об авторе

Кеннеди Берман — опытный инженер-программист. Он внедрил Python в процессы управления цифровыми активами в индустрии визуальных эффектов и с тех пор активно использует его. Кеннеди — автор множества книг и программ по обучению Python. Сейчас он работает старшим специалистом по инженерии данных в Envestnet.

От издательства

Ваши замечания, предложения, вопросы отправляйте по адресу comp@piter.com (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.

Часть I. Python в Jupyter Notebook

1. Введение в Jupyter Notebook

Все животные равны. Но некоторые равнее других.

Джордж Оруэлл

В этой главе

Выполнение операторов Python.

• Блокноты Jupyter.

• Блокноты в Google Colab.

• Ячейки с кодом и текстом.

• Загрузка файлов в Colab.

• Использование системного псевдонима для запуска команд из оболочки.

Магические функции.

В этой главе описана среда Jupyter Notebook от Google Colab, отлично подходящая для новичков, начинающих разработку на Python. Здесь я рассмотрю традиционные способы программирования на этом языке.

Выполнение операторов в Python

Как правило, Python-код выполнялся либо в интерактивной оболочке Python, либо через предоставление текстовых файлов интерпретатору. Если этот язык уже установлен в системе, то можно открыть его встроенную интерактивную оболочку, набрав python в командной строке:

python

Python 3.9.1 (default, Mar 7 2021, 09:53:19)

[Clang 12.0.0 (clang-1200.0.32.29)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

Примечание

В этой книге полужирный шрифт применяется для оформления пользовательского ввода (код, который вы вводите), а не получаемого результата.

Затем вы можете ввести оператор Python и выполнить его, нажав Enter:

print("Hello")

Hello

Как мы видим, результат каждого оператора отображается сразу после его ввода, строкой ниже.

Когда команды Python хранятся в текстовом файле с расширением .py, можно запустить их в командной строке, набрав python перед именем файла. Например, если у вас есть файл hello.py с оператором print("Hello"), вы можете вызвать его в командной строке и просмотреть вывод следующим образом:

python hello.py

Hello

В стандартных программных проектах на Python интерактивная среда подходит для изучения синтаксиса и проведения простых экспериментов. Выполнение кода из файлов — тот способ, с помощью которого действительно выполняется разработка и пишется программное обеспечение (ПО). Такие файлы можно распространять в любой среде, необходимой для запуска кода. Но для научных вычислений такие решения не подходят. Ученые хотели интерактивно взаимодействовать с данными, сохраняя возможность работать с ними в формате документа. Для восполнения этого пробела появилась разработка на основе блокнотов.

Блокноты Jupyter

IPython — это более функциональная версия интерактивной оболочки Python. Проект Jupyter возник из IPython. Он сочетает в себе интерактивный характер оболочки Python с постоянством формата, основанного на документах. Блокнот Jupyter — это исполняемый документ, где исполняемый код сочетается с отформатированным текстом. Он состоит из ячеек, содержащих код или текст. Когда ячейка кода выполняется, вывод отображается под ней. Любые изменения состояния, выполняемые кодовой ячейкой, используются всеми ячейками, выполняемыми впоследствии.

Это значит, что вы можете создавать свой код ячейка за ячейкой без необходимости повторного запуска всего документа при внесении изменений. Особенно полезным это может быть при исследовании данных и экспериментах с ними.

Блокноты Jupyter широко применяются для работы в data science. Вы можете запускать их со своего компьютера или из облачных сервисов (AWS, Kaggle, Databricks или Google).

Блокноты Google Colab

Colab (сокращение от Colaboratory) — облачный сервис блокнотов Google — это отличный инструмент для начала работы с Python. Вам не нужно ничего устанавливать, иметь дело с зависимостями библиотек или управлением средой. В этой книге для всех примеров используются блокноты Colab. Для использования этого сервиса войдите в учетную запись Google и перейдите на сайт https://colab.research.google.com. (рис. 1.1). Там вы можете создавать новые блокноты или открывать существующие. Последние могут включать в себя примеры, предоставленные Google, созданные вами ранее или скопированные на ваш Google Диск.

Новый блокнот откроется на отдельной вкладке браузера.

Первый созданный вами блокнот по умолчанию будет называться Untitled0.ipynb. Чтобы его переименовать, дважды щелкните на заголовке и введите новое имя (рис. 1.2).

 

Рис. 1.1. Начало взаимодействия с Google Colab

 

Рис. 1.2. Переименование блокнота в Google Colab

Colab автоматически сохраняет ваши блокноты на Google Диск, доступ к которому можно получить, перейдя на сайт Drive.Google.com. Расположением по умолчанию будет каталог Colab Notebooks (рис. 1.3).

 

Рис. 1.3. Папка Colab Notebooks на Google Диске

Текстовые ячейки Colab

В новом блокноте Google Colab есть одна ячейка. Она может быть двух типов: текст или код. Добавлять новые ячейки можно с помощью кнопок +Code и +Text в левом верхнем углу интерфейса.

Для форматирования текстовых ячеек используется язык Markdown (см. https://colab.research.google.com/notebooks/markdown_guide.ipynb). Чтобы изменить ячейку, дважды щелкните на ней кнопкой мыши, после чего справа откроется область предварительного просмотра (рис. 1.4).

 

Рис. 1.4. Редактирование текстовых ячеек в блокноте Google Colab

Вы можете сделать текст в блокноте полужирным, курсивным, зачеркнутым и моноширинным (рис. 1.5).

 

Рис. 1.5. Форматирование текста в блокноте Google Colab

Нумерованный список можно создать, указав числа перед элементами, а маркированный — поставив перед ними звездочки (рис. 1.6).

 

Рис. 1.6. Создание списков в блокноте Google Colab

Вы можете создавать заголовки, добавляя перед текстом символ решетки (#). Один символ решетки создает заголовок верхнего уровня, два — первого уровня и т.д. (рис. 1.7).

 

Рис. 1.7. Создание заголовков в блокноте Google Colab

Заголовок вверху ячейки определяет иерархию в документе. Посмотреть ее можно, открыв оглавление. Для этого нажмите кнопку Menu в левом верхнем углу интерфейса блокнота (рис. 1.8).

 

Рис. 1.8. Оглавление в блокноте Google Colab

С помощью оглавления вы можете перемещаться по документу, щелкая на отображаемых заголовках. У ячейки заголовка с дочерними ячейками есть треугольник рядом с текстом заголовка. Вы можете щелкнуть на нем, чтобы скрыть или просмотреть ячейки (рис. 1.9).

 

Рис. 1.9. Скрытие ячеек в блокноте Google Colab

LaTeX

Язык LaTeX (https://www.latex-project.org/about/), предназначенный для подготовки технических документов, применим и для представления математических выражений. LaTeX позволяет сосредоточиться на содержании, а не на внешнем виде. Вы можете вставить код LaTeX в текстовые ячейки блокнота Colab, окружив его знаками доллара (рис. 1.10).

 

Рис. 1.10. LaTeX, встроенный в блокнот Google Colab

Ячейки кода Colab

В блокнотах Google Colab вы используете ячейки для написания и выполнения кода. Чтобы выполнить оператор Python, введите его в ячейку кода и либо нажмите Play слева от ячейки, либо используйте сочетание клавиш Shift+Enter. Последнее переместит вас к следующей ячейке или создаст новую при отсутствии следующих. Результат выполнения кода отображается под ячейкой:

print("Hello")

hello

В дальнейших примерах используются только ячейки кода для блокнотов Colab.

Файлы Colab

Для просмотра доступных в Colab файлов и папок нажмите Files в левой части интерфейса (рис. 1.11). По умолчанию у вас есть доступ к папке sample_data, предоставленной Google.

 

Рис. 1.11. Просмотр файлов в Google Colab

Вы можете нажать Upload, чтобы загрузить файлы в текущий сеанс (рис. 1.12).

 

Рис. 1.12. Загрузка файлов в Google Colab

Загружаемые файлы доступны только в текущем сеансе вашего документа. Возвращаясь к нему позднее, вы должны будете загрузить их снова. Все файлы, доступные в Colab, имеют корневой путь /content/. Например, при загрузке файла с именем heights.over.time.csv его путь будет — /content/heights.over.time.csv.

Вы можете подключить свой Google Диск, нажав Mount Drive (рис. 1.13). Его содержимое имеет корневой путь /content/drive.

 

Рис. 1.13. Подключение Google Диска

Управление документами Colab

По умолчанию блокноты сохраняются на вашем Google Диске. В меню File можно выбрать другие варианты сохранения (на GitHub или в виде структур gist либо в виде отслеживаемых файлов или в формате блокнота Jupyter (с расширением .ipynb) и в виде файлов Python (с расширением .py)). Вы можете поделиться блокнотами, нажав Share в правом верхнем углу интерфейса.

Фрагменты кода Colab

С помощью Code Snippets в левой части интерфейса Colab можно искать и выбирать части кода (рис. 1.14). Вставить выбранные фрагменты можно, нажав Insert. Использование фрагментов кода — отличный способ узнать о возможностях Colab, в том числе о создании интерактивных форм, загрузке данных и использовании разных параметров визуализации.

 

Рис. 1.14. Использование фрагментов кода в Google Colab

Существующие коллекции

Вы можете использовать блокноты Google Colab для объяснения и демонстрации методов, концепций и рабочих процессов. Работы по Data Science есть во многих коллекциях блокнотов в Интернете. У Kaggle (https://www.kaggle.com/code) и Google Seedbank (https://research.google.com/seedbank/) много таких.

Системные псевдонимы

Запустить команду оболочки из ячейки блокнота Colab можно, поставив перед ней восклицательный знак. Следующий пример выводит рабочий каталог:

!pwd

/content

Вы можете передать любой вывод команды оболочки в переменную Python, как показано здесь, и использовать ее в последующем коде:

var = !ls sample_data

print(var)

Примечание

Пока не беспокойтесь о переменных. Мы поговорим о них в главе 2.

Магические функции

Магические функции изменяют способ выполнения кода в ячейке. Например, вы можете рассчитать время выполнения оператора Python с помощью магической функции %timeit():

import time

%timeit(time.sleep(1))

Магическая функция %%html поможет запускать HTML-код с помощью ячейки:

%%html

<marquee style=''width: 30%; color: blue;'><b>Whee!</b></marquee>

Примечание

Дополнительную информацию о магических функциях можно найти в примерах блокнотов Cell Magics, которые являются частью документации Jupyter, по ссылке https://nbviewer.jupyter.org/github/ipython/ipython/blob/1.x/examples/notebooks/Cell%20Magics.ipynb.

Резюме

Блокноты Jupyter — это документы, где форматированный текст сочетается с исполняемым кодом. Они приобрели популярность в научной среде, и многие примеры можно найти в Интернете. Google Colab предлагает готовые блокноты и содержит множество популярных библиотек, используемых в Data Science. Блокнот состоит из текстовых ячеек, отформатированных в Markdown, и кодовых ячеек, которые могут выполнять код Python. В следующих главах мы рассмотрим много примеров блокнотов Colab.

Вопросы для закрепления

1. Какие блокноты размещены в Google Colab?

2. Какие типы ячеек доступны в Google Colab?

3. Как вы подключаете свой Google Диск к Colab?

4. Какой язык используется в ячейках кода Google Colab?