Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Книга «Python Data Science Handbook» - это подробное руководство по самым разным вычислительным и статистическим методам, без которых немыслима любая интенсивная обработка данных, научные исследования и передовые разработки. Читатели, уже имеющие опыт программирования и желающие эффективно использовать Python в сфере Data Science, найдут в этой книге ответы на всевозможные вопросы, например: 1) как мне считать этот формат данных в мой скрипт? 2) Как преобразовать, очистить эти данные и манипулировать ими? 3) Как визуализировать данные такого типа? Как при помощи этих данных разобраться в ситуации, получить ответы на вопросы, построить статистические модели или реализовать машинное обучение?
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 549
Veröffentlichungsjahr: 2022
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Художники С. Заматевская , В. Мостипан
Дж. Плас вандер
Python для сложных задач: наука о данных и машинное обучение. — СПб.: Питер, 2021.
ISBN 978-5-4461-0914-2
© ООО Издательство "Питер", 2021
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
Эта книга посвящена исследованию данных с помощью языка программирования Python. Сразу же возникает вопрос: что же такое наука о данных (data science)? Ответ на него дать непросто — настолько данный термин многозначен.
Долгое время активные критики отказывали термину «наука о данных» в праве на существование либо по причине его избыточности (в конце концов, какая наука не имеет дела с данными?), либо расценивая этот термин как «модное словечко» для придания красоты резюме и привлечения внимания агентов по найму кадров.
На мой взгляд, в подобных высказываниях критики упускали нечто очень важное. Лучшее из возможных определений науки о данных приведено в диаграмме Венна в науке о данных, впервые опубликованной Дрю Конвеем в его блоге в сентябре 2010 года (рис. 0.1). Междисциплинарность — ключ к ее пониманию.
Рис. 0.1. Диаграмма Венна в науке о данных Дрю Конвея
Хотя некоторые названия немного ироничны, эта диаграмма улавливает суть того, что, как мне кажется, понимается под наукой о данных: она является междисциплинарным предметом.
Наука о данных охватывает три отдельные, но пересекающиеся сферы:
• навыки специалиста по математической статистике, умеющего моделировать наборы данных и извлекать из них основное;
• навыки специалиста в области компьютерных наук, умеющего проектировать и использовать алгоритмы для эффективного хранения, обработки и визуализации этих данных;
• экспертные знания предметной области, полученные в ходе традиционного изучения предмета, — умение как формулировать правильные вопросы, так и рассматривать ответы на них в соответствующем контексте.
С учетом этого я рекомендовал бы рассматривать науку о данных не как новую область знаний, которую нужно изучить, а как новый набор навыков, который вы можете использовать в рамках хорошо знакомой вам предметной области. Извещаете ли вы о результатах выборов, прогнозируете ли прибыльность ценных бумаг, занимаетесь ли оптимизацией контекстной рекламы в Интернете или распознаванием микроорганизмов на сделанных с помощью микроскопа фото, ищете ли новые классы астрономических объектов или же работаете с данными в любой другой сфере, цель этой книги — научить задавать новые вопросы о вашей предметной области и отвечать на них.
«Как именно следует изучать Python?» — один из наиболее часто задаваемых мне вопросов на различных технологических конференциях и встречах. Задают его заинтересованные в технологиях студенты, разработчики или исследователи, часто уже со значительным опытом написания кода и использования вычислительного и цифрового инструментария. Большинству из них не нужен язык программирования Python в чистом виде, они хотели бы изучать его, чтобы применять в качестве инструмента для решения задач, требующих вычислений с обработкой больших объемов данных.
Эта книга не планировалась в качестве введения в язык Python или в программирование вообще. Я предполагаю, что читатель знаком с языком Python, включая описание функций, присваивание переменных, вызов методов объектов, управление потоком выполнения программы и решение других простейших задач. Она должна помочь пользователям языка Python научиться применять стек инструментов исследования данных языка Python — такие библиотеки, как IPython, NumPy, Pandas, Matplotlib, Scikit-Learn и соответствующие инструменты, — для эффективного хранения, манипуляции и понимания данных.
За последние несколько десятилетий язык программирования Python превратился в первоклассный инструмент для научных вычислений, включая анализ и визуализацию больших наборов данных. Это может удивить давних поклонников Python: сам по себе этот язык не был создан в расчете на анализ данных или научные вычисления.
Язык программирования Python пригоден для науки о данных в основном благодаря большой и активно развивающейся экосистеме пакетов, созданных сторонними разработчиками:
• библиотеки NumPy — для работы с однородными данными в виде массивов;
• библиотеки Pandas — для работы с неоднородными и поименованными данными;
• SciPy — для общих научных вычислительных задач;
• библиотеки Matplotlib — для визуализаций типографского качества;
• оболочки IPython — для интерактивного выполнения и совместного использования кода;
• библиотеки Scikit-Learn — для машинного обучения и множества других инструментов, которые будут упомянуты в дальнейшем.
Если вы ищете руководство по самому языку программирования Python, рекомендую обратить ваше внимание на проект «Краткая экскурсия по языку программирования Python» (https://github.com/jakevdp/WhirlwindTourOfPython). Он знакомит с важнейшими возможностями языка Python и рассчитан на исследователей данных, уже знакомых с одним или несколькими языками программирования.
Языки программирования Python 2 и Python 3. В книге используется синтаксис Python 3, содержащий несовместимые с выпусками 2.x языка программирования Python расширения. Хотя Python 3.0 был впервые выпущен в 2008 году, он внедрялся довольно медленно, особенно в научном сообществе и сообществе веб-разработчиков. Главная причина заключалась в том, что многие важные сторонние пакеты и наборы программ только через некоторое время стали совместимы с новым языком.
В начале 2014 года стабильные выпуски важнейших инструментов экосистемы науки о данных были полностью совместимы как с языком Python 2, так и Python 3, поэтому данная книга использует более новый синтаксис языка Python 3. Однако абсолютное большинство фрагментов кода в этой книге будет также работать без всяких модификаций на языке Python 2. Случаи, когда применяется несовместимый с Python 2 синтаксис, я буду указывать.
Каждая глава книги посвящена конкретному пакету или инструменту, составляющему существенную часть инструментария Python для исследования данных.
•IPython и Jupyter (глава 1) — предоставляют вычислительную среду, в которой работают многие использующие Python исследователи данных.
• NumPy (глава 2) — предоставляет объект ndarray для эффективного хранения и работы с плотными массивами данных в Python.
• Pandas (глава 3) —предоставляет объект DataFrame для эффективного хранения и работы с поименованными/столбчатыми данными в Python.
• Matplotlib (глава 4) — предоставляет возможности для разнообразной гибкой визуализации данных в Python.
•Scikit-Learn (глава 5) — предоставляет эффективные реализации на Python большинства важных и широко известных алгоритмов машинного обучения.
Мир PyData гораздо шире представленных пакетов, и он растет день ото дня. С учетом этого я использую каждую возможность в книге, чтобы сослаться на другие интересные работы, проекты и пакеты, расширяющие пределы того, что можно сделать на языке Python. Тем не менее сегодня эти пять пакетов являются основополагающими для многого из того, что можно сделать в области применения языка программирования Python к исследованию данных. Я полагаю, что они будут сохранять свое значение и при росте окружающей их экосистемы.
Дополнительные материалы (примеры кода, упражнения и т. п.) доступны для скачивания по адресу https://github.com/jakevdp/PythonDataScienceHandbook.
Задача этой книги — помочь вам делать вашу работу. Вы можете использовать любой пример кода из книги в ваших программах и документации. Обращаться к нам за разрешением нет необходимости, разве что вы копируете значительную часть кода. Например, написание программы, использующей несколько фрагментов кода из этой книги, не требует отдельного разрешения. Однако для продажи или распространения компакт-диска с примерами из книг O’Reilly разрешение требуется. Ответ на вопрос путем цитирования этой книги и цитирования примеров кода не требует разрешения. Но включение значительного количества примеров кода из книги в документацию к вашему продукту потребует разрешения.
Мы ценим, хотя и не требуем ссылки на первоисточник. Она включает название, автора, издательство и ISBN. Например, «Python для сложных задач. Наука о данных и машинное обучение (“Питер”). Copyright Джейк Вандер Пласс, 2017, 978-1-491-91205-8».
Если вам кажется, что вы выходите за рамки правомерного использования примеров кода, не стесняясь, связывайтесь с нами по адресу [email protected].
Инсталляция Python и набора библиотек, обеспечивающих возможность научных вычислений, не представляет сложности. В данном разделе будут рассмотрены особенности, которые следует принимать во внимание при настройке.
Существует множество вариантов установки Python, но я предложил бы воспользоваться дистрибутивом Anaconda, одинаково работающим в операционных системах Windows, Linux и Mac OS X. Дистрибутив Anaconda существует в двух вариантах.
•Miniconda (http://conda.pydata.org/miniconda.html) содержит сам интерпретатор языка программирования Python, а также утилиту командной строки conda, функционирующую в качестве межплатформенной системы управления пакетами, ориентированной на работу с пакетами Python и аналогичной по духу утилитам apt и yum, хорошо знакомым пользователям операционной системы Linux.
•Anaconda (https://www.continuum.io/downloads) включает интерпретатор Python и утилиту conda, а также набор предустановленных пакетов, ориентированных на научные вычисления. Приготовьтесь к тому, что установка займет несколько гигабайт дискового пространства.
Все включаемые в Anaconda пакеты можно также установить вручную поверх Miniconda, именно поэтому я рекомендую вам начать с Miniconda.
Для начала скачайте и установите пакет Miniconda (не забудьте выбрать версию с языком Python 3), после чего установите базовые пакеты, используемые в данной книге:
[~]$ conda install numpy pandas scikit-learn matplotlib seaborn ipython-notebook
На протяжении всей книги мы будем применять и другие, более специализированные утилиты из научной экосистемы Python, установка которых сводится к выполнению команды conda install название_пакета. За дополнительной информацией об утилите conda, включая информацию о создании и использовании сред разработки conda (что я бы крайне рекомендовал), обратитесь к онлайн-документации утилиты conda (http://conda.pydata.org/docs/).
В этой книге используются следующие условные обозначения.
Курсив
Курсивом выделены новые термины.
Моноширинный шрифт
Используется для листингов программ, а также внутри абзацев, чтобы обратиться к элементам программы вроде переменных, функций и типов данных. Им также выделены имена и расширения файлов.
Полужирный моноширинный шрифт
Показывает команды или другой текст, который пользователь должен ввести самостоятельно.
Курсивный моноширинный шрифт
Показывает текст, который должен быть заменен значениями, введенными пользователем, или значениями, определяемыми контекстом.