Python для сложных задач: наука о данных - Джейк Вандер Плас - E-Book

Python для сложных задач: наука о данных E-Book

Джейк Вандер Плас

0,0

Beschreibung

Python — первоклассный инструмент, и в первую очередь благодаря наличию множества библиотек для хранения, анализа и обработки данных. Отдельные части стека Python описываются во многих источниках, но только в новом издании «Python для сложных задач» вы найдете подробное описание: IPython, NumPy, pandas, Matplotlib, Scikit-Learn и др. Специалисты по обработке данных, знакомые с языком Python, найдут во втором издании решения таких повседневных задач, как обработка, преобразование и подготовка данных, визуализация различных типов данных, использование данных для построения статистических моделей и моделей машинного обучения. Проще говоря, эта книга является идеальным справочником по научным вычислениям в Python.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 505

Veröffentlichungsjahr: 2024

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Переводчик Л. Киселева

Джейк Вандер Плас

Python для сложных задач: наука о данных. 2-е межд. изд.. — Астана: "Спринт Бук", 2024.

ISBN 978-601-08-3564-1

© ТОО "Спринт Бук", 2024

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

Оглавление

Отзывы ко второму изданию
Предисловие
Что такое наука о данных
Для кого предназначена эта книга
Почему Python
Общая структура книги
Вопросы установки
Условные обозначения
Использование примеров кода
Полноцветные иллюстрации
Часть I. Jupyter: за пределами обычного Python
Глава 1. Знакомство с IPython и Jupyter
Запуск командной оболочки IPython
Запуск Jupyter Notebook
Справка и документация в IPython
Горячие клавиши в командной оболочке IPython
Глава 2. Расширенные интерактивные возможности
Магические команды IPython
История ввода и вывода
IPython и использование системного командного процессора
Глава 3. Отладка и профилирование
Ошибки и отладка
Профилирование и хронометраж выполнения кода
Дополнительные источники информации об оболочке IPython
Часть II. Введение в NumPy
Глава 4. Типы данных в Python
Целое число в Python — больше, чем просто целое число
Глава 5. Введение в массивы NumPy
Атрибуты массивов NumPy
Индексация массива: доступ к отдельным элементам
Срезы массивов: доступ к подмассивам
Изменение формы массивов
Слияние и разбиение массивов
Глава 6. Вычисления с массивами NumPy: универсальные функции
Медлительность циклов
Введение в универсальные функции
Обзор универсальных функций в библиотеке NumPy
Продвинутые возможности универсальных функций
Универсальные функции: дополнительная информация
Глава 7. Агрегирование: минимум, максимум и все, что посередине
Суммирование значений в массиве
Минимум и максимум
Пример: чему равен средний рост президентов США
Глава 8. Операции над массивами. Транслирование
Введение в транслирование
Правила транслирования
Транслирование на практике
Глава 9. Сравнения, маски и булева логика
Пример: подсчет количества дождливых дней
Операторы сравнения как универсальные функции
Работа с булевыми массивами
Булевы массивы как маски
Ключевые слова and/or и операторы &/|
Глава 10. «Прихотливая» индексация
Возможности «прихотливой» индексации
Комбинированная индексация
Пример: выборка случайных точек
Изменение значений с помощью «прихотливой» индексации
Пример: разбиение данных на интервалы
Глава 11. Сортировка массивов
Быстрая сортировка в библиотеке NumPy: функции np.sort и np.argsort
Сортировка по строкам и столбцам
Частичная сортировка: секционирование
Пример: k ближайших соседей
Глава 12. Структурированные данные: структурированные массивы NumPy
Создание структурированных массивов
Более продвинутые типы данных
Массивы записей: структурированные массивы с дополнительными возможностями
Вперед, к Pandas
Часть III. Манипуляции над данными с помощью пакета Pandas
Глава 13. Знакомство с объектами библиотеки Pandas
Объект Series
Объект DataFrame
Объект Index
Глава 14. Индексация и выборка данных
Выборка данных из объекта Series
Выборка данных из объекта DataFrame
Глава 15. Операции над данными в библиотеке Pandas
Универсальные функции: сохранение индекса
Универсальные функции: согласование индексов
Универсальные функции: операции между объектами DataFrame и Series
Глава 16. Обработка отсутствующих данных
Компромиссы при обозначении отсутствующих данных
Отсутствующие данные в Pandas
Типы данных с поддержкой пустых значений в Pandas
Операции над пустыми значениями
Глава 17. Иерархическая индексация
Мультииндексированный объект Series
Методы создания объектов MultiIndex
Индексация и срезы по мультииндексу
Перегруппировка мультииндексов
Глава 18. Объединение наборов данных: конкатенация и добавление в конец
Напоминание: конкатенация массивов NumPy
Простая конкатенация с помощью метода pd.concat
Глава 19. Объединение наборов данных: слияние и соединение
Реляционная алгебра
Виды соединений
Задание ключа слияния
Применение операций над множествами для соединений
Пересекающиеся имена столбцов: именованный аргумент suffixes
Пример: данные по штатам США
Глава 20. Агрегирование и группировка
Данные о планетах
Простое агрегирование в библиотеке Pandas
groupby: разбиение, применение, объединение
Глава 21. Сводные таблицы
Примеры для изучения приемов работы со сводными таблицами
Сводные таблицы «вручную»
Синтаксис сводных таблиц
Пример: данные о рождаемости
Глава 22. Векторизованные операции над строками
Знакомство со строковыми операциями в библиотеке Pandas
Таблица строковых методов в библиотеке Pandas
Пример: база данных рецептов
Глава 23. Работа с временными рядами
Дата и время в языке Python
Временные ряды библиотеки Pandas: индексация по времени
Структуры данных для временных рядов библиотеки Pandas
Регулярные последовательности: функция pd.date_range()
Периодичность и смещение дат
Передискретизация, временные сдвиги и окна
Пример: визуализация количества велосипедов в Сиэтле
Глава 24. Увеличение производительности библиотеки Pandas: eval() и query()
Основания для использования функций query() и eval(): составные выражения
Использование функции pandas.eval() для эффективных операций
Использование метода DataFrame.eval() для выполнения операций по столбцам
Метод DataFrame.query()
Производительность: когда следует использовать эти функции
Дополнительные источники информации
Часть IV. Визуализация с помощью библиотеки Matplotlib
Глава 25. Общие советы по библиотеке Matplotlib
Импортирование matplotlib
Настройка стилей
Использовать или не использовать show()? Как отображать графики
Глава 26. Простые линейные графики
Настройка графика: цвета и стили линий
Настройка графика: пределы осей координат
Метки на графиках
Нюансы использования Matplotlib
Глава 27. Простые диаграммы рассеяния
Построение диаграмм рассеяния с помощью plt.plot
Построение диаграмм рассеяния с помощью plt.scatter
plot и scatter: примечание относительно производительности
Визуализация погрешностей
Глава 28. Графики плотности и контурные графики
Визуализация трехмерной функции
Гистограммы, разбиения по интервалам и плотность
Двумерные гистограммы и разбиение по интервалам
Глава 29. Настройка легенд на графиках
Выбор элементов для легенды
Задание легенды для точек разного размера
Отображение нескольких легенд
Глава 30. Настройка цветовых шкал
Настройка цветовой шкалы
Пример: рукописные цифры
Глава 31. Множественные субграфики
plt.axes: создание субграфиков вручную
plt.subplot: простые сетки субграфиков
plt.subplots: создание всей сетки за один раз
plt.GridSpec: более сложные конфигурации
Глава 32. Текст и поясняющие надписи
Преобразования и координаты текста
Стрелки и поясняющие надписи
Глава 33. Настройка делений на осях координат
Основные и промежуточные деления осей координат
Сокрытие делений и/или меток
Уменьшение или увеличение количества делений
Экзотические форматы делений
Краткая сводка локаторов и форматеров
Глава 34. Настройка Matplotlib: конфигурации и таблицы стилей
Настройка графиков вручную
Изменение значений по умолчанию: rcParams
Таблицы стилей
Глава 35. Построение трехмерных графиков в библиотеке Matplotlib
Трехмерные точки и линии
Трехмерные контурные графики
Каркасы и поверхностные графики
Триангуляция поверхностей
Пример: визуализация ленты Мёбиуса
Глава 36. Визуализация с помощью библиотеки Seaborn
Анализируем графики Seaborn
Графики факторов
Пример: время прохождения марафона
Дополнительные источники информации
Другие графические библиотеки для Python
Часть V. Машинное обучение
Глава 37. Что такое машинное обучение
Категории машинного обучения
Качественные примеры прикладных задач машинного обучения
Резюме
Глава 38. Знакомство с библиотекой Scikit-Learn
Представление данных в Scikit-Learn
API статистического оценивания в Scikit-Learn
Прикладная задача: анализ рукописных цифр
Резюме
Глава 39. Гиперпараметры и проверка модели
Соображения относительно проверки модели
Выбор оптимальной модели
Кривые обучения
Проверка на практике: поиск по сетке
Резюме
Глава 40. Проектирование признаков
Категориальные признаки
Текстовые признаки
Признаки для изображений
Производные признаки
Подстановка отсутствующих данных
Конвейеры признаков
Глава 41. Заглянем глубже: наивная байесовская классификация
Байесовская классификация
Гауссов наивный байесовский классификатор
Полиномиальный наивный байесовский классификатор
Когда имеет смысл использовать наивный байесовский классификатор
Глава 42. Заглянем глубже: линейная регрессия
Простая линейная регрессия
Регрессия по комбинации базисных функций
Регуляризация
Пример: предсказание велосипедного трафика
Глава 43. Заглянем глубже: метод опорных векторов
Основания для использования метода опорных векторов
Метод опорных векторов: максимизация отступа
Пример: распознавание лиц
Резюме
Глава 44. Заглянем глубже: деревья решений и случайные леса
Движущая сила случайных лесов: деревья принятия решений
Ансамбли моделей: случайные леса
Регрессия с помощью случайных лесов
Пример: использование случайного леса для классификации цифр
Резюме
Глава 45. Заглянем глубже: метод главных компонент
Знакомство с методом главных компонент
Использование метода PCA для фильтрации шума
Пример: метод Eigenfaces
Резюме
Глава 46. Заглянем глубже: обучение на базе многообразий
Обучение на базе многообразий: «HELLO»
Многомерное масштабирование (MDS)
Нелинейные многообразия: локально линейное вложение
Некоторые соображения относительно методов обучения на базе многообразий
Пример: использование Isomap для распознавания лиц
Пример: визуализация структуры цифр
Глава 47. Заглянем глубже: кластеризация методом k средних
Знакомство с методом k средних
Максимизация математического ожидания
Примеры
Глава 48. Заглянем глубже: смеси гауссовых распределений
Причины появления GMM: недостатки метода k средних
Обобщение EM-модели: смеси гауссовых распределений
Выбор типа ковариации
GMM как метод оценки плотности распределения
Пример: использование метода GMM для генерации новых данных
Глава 49. Заглянем глубже: ядерная оценка плотности распределения
Обоснование метода KDE: гистограммы
Ядерная оценка плотности распределения на практике
Пример: не столь наивный байес
Глава 50. Прикладная задача: конвейер распознавания лиц
Признаки HOG
Метод HOG в действии: простой детектор лиц
Предостережения и дальнейшие усовершенствования
Дополнительные источники информации по машинному обучению
Об авторе
Иллюстрация на обложке
Рекомендуем прочитать

Отзывы ко второму изданию

К настоящему времени опубликовано большое количество книг, посвященных науке о данных, но, как мне кажется, Джейку ВандерПласу удалось написать исключительную книгу. Он взял очень сложную и обширную тему, разбил ее на части и описал ее таким простым и понятным языком, сопроводив множеством примеров, что вы без труда освоите ее.

Селеста Стингер (Celeste Stinger), инженер по надежности сайта

Опыт Джейка ВандерПласа и его страсть к обмену знаниями несомненны. В этом обновленном издании вы найдете ясные и простые примеры, которые помогут вам настроить и использовать основные инструменты обработки данных и машинного обучения. Если вы готовы погрузиться в обработку данных и использовать инструменты Python для извлечения реальной информации из ваших данных, то эта книга для вас!

Энн Боннер (Anne Bonner), основатель и генеральный директор Content Simplicity

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

Ной Гифт (Noah Gift), исполнительный директор и основатель Pragmatic AI Labs

Это обновленное издание является отличным введением в библиотеки, делающие Python одним из лучших языков для обработки данных и научных вычислений. Книга написана доступным языком и наполнена отличными примерами.

Аллен Дауни (Allen Downey), автор книг Think Python1 и Think Bayes2

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

Уильям Джамир Сильва (William Jamir Silva), старший инженер-программист, Adjust GmbH

Джейк ВандерПлас имеет богатый опыт объяснения основных концепций и инструментов Python тем, кто изучает науку о данных. И в этом втором издании «Python для сложных задач» он снова подтвердил свои умения. В этой книге вы найдете обзор всех инструментов, которые могут пригодиться на начальном этапе, а также доступные объяснения, почему то или иное реализуется именно так, а не иначе.

Джеки Казил (Jackie Kazil), создатель библиотеки Mesa и обладатель звания Data Science Leader

1Дауни А. Основы Python. Научитесь мыслить как программист.

2Дауни А. Байесовские модели. Байесовская статистика на языке Python.

Предисловие

Что такое наука о данных

Эта книга посвящена исследованию данных с помощью языка программирования Python. Сразу же возникает вопрос: что же такое наука о данных (data science)? Ответ на него дать непросто — настолько этот термин многозначен. Долгое время активные критики отказывали термину «наука о данных» в праве на существование либо по причине его избыточности (в конце концов, какая наука не имеет дела с данными?), либо расценивая этот термин как «модное словечко» для придания красоты резюме и привлечения внимания агентов по найму кадров.

На мой взгляд, в подобных высказываниях критики упускали нечто очень важное. Название «наука о данных», несмотря на поднятую вокруг него шумиху, пожалуй, лучше всего подходит для обозначения междисциплинарного набора навыков, становящихся все более востребованными в промышленности и науке. Междисциплинарность — ключ к ее пониманию. Лучшее из возможных определений науки о данных приведено в диаграмме Венна в науке о данных, впервые опубликованной Дрю Конвеем в его блоге в сентябре 2010 года (рис. 0.1).

Хотя некоторые названия немного ироничны, эта диаграмма ясно передает суть того, что, как мне кажется, понимается под наукой о данных: она является междисциплинарным предметом. Наука о данных охватывает три отдельные, но пересекающиеся сферы:

• навыки специалиста поматематической статистике, умеющего моделировать наборы данных и извлекать из них основное;

• навыки специалиста в области информатики, умеющего проектировать и использовать алгоритмы для эффективного хранения, обработки и визуализации этих данных;

• экспертные знания предметной области, полученные в ходе традиционного изучения предмета, — умение формулировать правильные вопросы и рассматривать ответы на них в соответствующем контексте.

С учетом этого я рекомендовал бы рассматривать науку о данных не как новую область знаний, которую нужно изучить, а как новый набор навыков, который вы можете использовать в рамках хорошо знакомой вам предметной области. Извещаете ли вы о результатах выборов, прогнозируете ли прибыльность ценных бумаг, занимаетесь ли оптимизацией контекстной рекламы в Интернете или распознаванием микроорганизмов на фотографиях, сделанных с помощью микроскопа, ищете ли новые классы астрономических объектов или же работаете с данными в любой другой сфере, цель этой книги — научить задавать новые вопросы о вашей предметной области и отвечать на них.

Рис. 0.1. Диаграмма Венна в науке о данных, опубликованная Дрю Конвееем (источник: https://oreil.ly/PkOOw)

Для кого предназначена эта книга

«Как именно следует изучать Python?» — один из наиболее часто задаваемых мне вопросов студентами Вашингтонского университета и на различных технологических конференциях и встречах. Задают его заинтересованные в технологиях студенты, разработчики или исследователи, часто уже со значительным опытом написания кода и использования вычислительного и цифрового инструментария. Большинству из них не нужен язык программирования Python в чистом виде, они хотели бы изучать его, чтобы применять в качестве инструмента для решения задач, требующих вычислений с обработкой больших объемов данных. Несмотря на большое разнообразие видеороликов, статей в блогах и учебных пособий, ориентированных на эту аудиторию, вы не найдете в Интернете единственного хорошего ответа на данный вопрос, именно поэтому я взялся за эту книгу.

Эта книга не планировалась как введение в язык Python или в программирование вообще. Я предполагаю, что читатель знаком с языком Python и знает, как определять функции, присваивать значения переменным, вызывать методы объектов, управлять потоком выполнения программы и решать другие простейшие задачи. Она должна помочь пользователям языка Python научиться применять инструменты исследования данных, имеющиеся в языке Python, — библиотеки, упоминающиеся в следующем разделе, и сопутствующие инструменты — для эффективного хранения и анализа данных и извлечения из них полезной информации.

Почему Python

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

• NumPy — библиотека для работы с массивами однородных данных;

• Pandas — библиотека для работы с разнородными и маркированными данными;

• SciPy — библиотека для общих научных вычислительных задач;

• Matplotlib — библиотека для создания визуализаций типографского качества;

• IPython — оболочка для интерактивного выполнения и распространения кода;

• Scikit-Learn — библиотека для машинного обучения.

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

Если вы ищете руководство по самому языку программирования Python, то рекомендую обратить ваше внимание на проект A Whirlwind Tour of Python («Краткая экскурсия по языку программирования Python») (https://oreil.ly/jFtWj). Он знакомит с важнейшими возможностями языка Python и рассчитан на исследователей данных, уже знакомых с одним или несколькими языками программирования.

Общая структура книги

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

• Jupyter: за пределами обычного Python (часть I) — знакомит с IPython и Jupyter. Эти пакеты образуют вычислительное окружение, в котором работают многие исследователи данных, использующие Python.

• Введение в NumPy (часть II) — представляет библиотеку NumPy, в состав которой входит объект ndarray для эффективного хранения и работы с плотными массивами данных в Python.

• Манипуляции над данными с помощью пакета Pandas (часть III) — представляет библиотеку Pandas, в состав которой входит объект DataFrame для эффективного хранения и работы с маркированными/табличными данными в Python.

• Визуализация с помощью библиотеки Matplotlib (часть IV) — представляет библиотеку Matplotlib, реализующую богатые возможности для разнообразной гибкой визуализации данных в Python.

• Машинное обучение (часть V) — представляет библиотеку Scikit-Learn, включающую эффективные реализации на Python многих важных и широко известных алгоритмов машинного обучения.

Мир PyData гораздо шире представленных пакетов, и он растет день ото дня. С учетом этого я использую каждую возможность в книге, чтобы упомянуть другие интересные работы, проекты и пакеты, расширяющие пределы возможностей языка Python. Тем не менее пакеты, перечисленные выше, являются основой для применения языка программирования Python в исследовании данных. Я полагаю, что они сохранят свое значение и при росте окружающей их экосистемы.

Вопросы установки

Установка Python и набора библиотек поддержки научных вычислений не представляет сложности. В данном разделе будут рассмотрены особенности, которые следует принимать во внимание при настройке.

Существует множество вариантов установки Python, но я предложил бы воспользоваться дистрибутивом Anaconda, одинаково работающим в операционных системах Windows, Linux и macOS. Дистрибутив Anaconda существует в двух вариантах.

• Miniconda (https://oreil.ly/dH7wJ) содержит сам интерпретатор Python, а также утилиту командной строки conda — кросс-платформенную систему управления пакетами, ориентированную на работу с пакетами Python и аналогичную по духу утилитам apt и yum, хорошо знакомым пользователям операционной системы Linux.

• Anaconda (https://oreil.ly/ndxjm) включает интерпретатор Python и утилиту conda, а также набор предустановленных пакетов для научных вычислений. Приготовьтесь к тому, что для установки этого дистрибутива потребуется несколько гигабайтов дискового пространства.

Все пакеты, входящие в состав Anaconda, можно также установить вручную после установки Miniconda, именно поэтому я рекомендую начать с Miniconda.

Для начала скачайте и установите пакет Miniconda (не забудьте выбрать версию с языком Python 3), после чего установите базовые пакеты, используемые в данной книге:

[~]$ conda install numpy pandas scikit-learn matplotlib seaborn jupyter

На протяжении всей книги мы будем применять и другие, более специализированные утилиты из научной экосистемы Python, установка которых сводится к выполнению команды conda install название_пакета. Если вдруг вам доведется столкнуться с пакетами, недоступными в conda по умолчанию, то обязательно загляните в conda-forge (https://oreil.ly/CCvwQ) — обширный репозиторий пакетов conda.

За дополнительной информацией об утилите conda, включая информацию о создании и использовании сред разработки conda (которые я настоятельно рекомендую), обратитесь к онлайн-документации утилиты conda (https://oreil.ly/MkqPw).

Условные обозначения

В этой книге используются следующие условные обозначения.

Курсив

Курсивом выделены новые термины.

Моноширинный шрифт

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

Полужирный моноширинный шрифт

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

Курсивный моноширинный шрифт

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

Так обозначаются примечания общего характера.

Использование примеров кода

Дополнительные материалы (примеры кода, упражнения и т.п.) доступны для скачивания по адресу https://github.com/jakevdp/PythonDataScienceHandbook.

В общем случае все примеры кода из книги вы можете использовать в своих программах и документации. Вам не нужно обращаться в издательство за разрешением, если вы не собираетесь воспроизводить существенные части программного кода. Если вы разрабатываете программу и используете в ней несколько фрагментов кода из книги, вам не нужно обращаться за разрешением. Но для продажи или распространения примеров из книги вам потребуется разрешение от издательства O’Reilly. Вы можете отвечать на вопросы, цитируя данную книгу или примеры из нее, но для включения существенных объемов программного кода из книги в документацию вашего продукта потребуется разрешение.

Мы рекомендуем, но не требуем добавлять ссылку на первоисточник при цитировании. Под ссылкой на первоисточник мы подразумеваем указание авторов, издательства и ISBN.

За получением разрешения на использование значительных объемов программного кода из книги обращайтесь по адресу [email protected].

Полноцветные иллюстрации

Поскольку эта книга напечатана в черно-белом исполнении, мы подготовили онлайн-приложение с полноцветными и полноразмерными изображениями, которое вы найдете по адресу https://oreil.ly/PDSH_GitHub.

Часть I. Jupyter: за пределами обычного Python

Меня часто спрашивают, какой из множества вариантов среды разработки для Python я использую в своей работе. Мой ответ иногда удивляет спрашивающих: моя излюбленная среда — IPython (http://ipython.org/) плюс текстовый редактор (в моем случае редактор Emacs или VSCode в зависимости от настроения). Jupyter начинался как оболочка IPython (сокращение от «интерактивный Python»), созданная в 2001 году Фернандо Пересом и задумывавшаяся как продвинутый интерпретатор Python, и с тех пор вырос в проект, призванный обеспечить, по словам Переса, «инструменты для всего жизненного цикла исследовательских расчетов». Если язык Python — механизм решения нашей задачи в области науки о данных, то Jupyter можно рассматривать как интерактивную панель управления.

Jupyter как полезный интерактивный интерфейс для языка Python поддерживает несколько удобных синтаксических дополнений к нему. Самый известный, пожалуй, интерфейс, предоставляемый проектом Jupyter, — это Jupyter Notebook, веб-среда для разработки, сотрудничества, совместного использования и даже публикации результатов. Не стоит далеко ходить за примером, показывающим удобства формата блокнотов Jupyter, им служит страница, которую вы сейчас читаете: вся рукопись данной книги написана как набор блокнотов Jupyter.

Эта часть книги начнется знакомством с некоторыми особенностями Jupyter и IPython, которые могут пригодиться при исследовании данных. Основное свое внимание мы сосредоточим на синтаксических возможностях, выходящих за пределы стандартных возможностей языка Python. Немного углубимся в «магические» команды, позволяющие ускорить выполнение стандартных задач при создании и использовании кода, предназначенного для исследования данных. И наконец, затронем возможности Jupyter Notebook, помогающие понять смысл данных и обмениваться результатами.