В этом руководстве мы расскажем как изучать Python чтобы применять его в науке о данных (Data science), включая программы для самостоятельного изучения.

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

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

Сейчас удачное время для изучения Python. В 2017 году Forbes назвал его одним из 10 технических навыков, которые повышают вашу ценность как специалиста. Давайте обсудим почему …

Зачем изучать Python?

Python — один из самых распространенных в мире языков, и у него есть огромное сообщество пользователей:

Популярность Python, TIOBE Index

Также у Python много верных сторонников среди аналитиков данных.

Python- минималистичный и интуитивно понятный язык, с небольшим количеством конструкций. Некоторые люди оценивают лаконичность языка программирования по простоте написания программы «привет, мир!». Python отлично справляется с этим стандартом:

Для сравнения, этот же результат на Java дает код:

Простота — одна из самых сильных сторон Питона. Благодаря точному и эффективному синтаксису Python может выполнять те же задачи с меньшим количеством кода, чем другие языки. Это сказывается на скорости написания программ.

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

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

Как эффективно изучать Python

Прежде чем мы начнем перечислять, что вам нужно будет изучить, давайте обсудим, что вам не понадобится:

Вам не нужна ученая степень по информатике.

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

Вам не нужен полный курс Python.

Python и анализ данных не синонимы.

Вам не нужно запоминать весь синтаксис.

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

Мы рекомендуем обратный подход в изучении.

Мы выступаем за обратный подход с целью в первую очередь получить результаты, а затем постепенно подкреплять их теорией. Фактически, мы предпочитаем сокращать «время за партой» в пользу реальной практики.

Вы начнете с изучения основных концепций программирования.

Затем вы получите практическое знание основных библиотек данных.

Наконец, вы будете практиковаться и совершенствовать свои навыки решая реальные задачи.

Этот подход позволит вам быстрее усваивать материал и получать больше удовольствия от процесса.

# установка Python через Anaconda

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

Шаг 1: Основные понятия программирования

Эффективность программирования заключается не в запоминании синтаксиса, а во владении «вычислительным мышлением».

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

Если вы новичок в программировании…

Если вы совершенно новичок в программировании, мы рекомендуем прочитать «Автоматизацию скучных вещей с помощью Python», которая была выпущена бесплатно в Интернете по лицензии Creative Commons.

Книга обещает «практическое программирование для начинающих», и учит с азов. Прочтите главу 6 «Манипулирование строками» и выполните практические задания к этому уроку.

Если у вас есть опыт работы на другом языке …

Если вам нужно только изучить синтаксис Python, мы рекомендуем следующее видео, метко названое «Learn Python in One Video»

Опять же, цель этого шага — получить интуитивное понимание, а не узнать все о Python и программировании.

Вы должны уметь отвечать на такие вопросы, как:

  • В чем разница между integer, float, и string?
  • Могу я использовать Python для вычислений?
  • Что такое цикл for? Когда стоит его использовать?
  • Какова основная структура функции?
  • Как я могу использовать условные операторы (if … else …) ?
  • Как работают операции импорта?

Дополнительные ресурсы

Если вы хотите больше попрактиковаться, ознакомьтесь со следующими ресурсами:

  • Code Fights это платформа с небольшими заданиями, которые могут быть решены за 5 минут.Это настолько увлекательно, что можно играть 5 часов подряд и не заметить. Вы получаете очки за выполнение заданий и открываете новые уровни. Это хороший способ отслеживать свой прогресс.
  • The Python Challenge одна из самых крутых головоломок в Интернете, не пугайтесь графики 90-х годов. Вы можете выполнить все 33 уровня с помощью скриптов Python. Один пользователь назвал это «захватывающим способом узнать все аспекты Python …» Мы согласны!
  • PracticePython.org это набор коротких практических задач в Python. Он обновляется почти каждую неделю. Что действительно приятно, так это возможность увидеть альтернативные способы их решения.
  • How to Think Like a Computer Scientist это отличный интерактивный онлайн-ресурс, который дает общее понимание основных концепций программирования (с Python). Если вы совершенно новичок в программировании, это может быть хорошим вариантом.

Шаг 2: Основные библиотеки анализа данных

Дальше мы сосредоточим внимание на той части Python, которая применима для науки о данных.

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

Наши рекомендации:

  1. Откройте Jupyter Notebook (см. ниже).
  2. Пробегитесь по документации библиотеки за полчаса.
  3. Импортируйте библиотеку в свой Jupyter Notebook.
  4. Следуйте пошаговому руководству, чтобы увидеть библиотеку в действии.
  5. Изучите документацию глубже чтобы понять на что еще она способна.

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

#Jupyter Notebook

Если вы установили Python через пакет Anaconda, как мы рекомендовали выше, в него также будет входить Jupyter Notebook. Jupyter Notebook — это легкая IDE, которая является фаворитом среди аналитиков. Мы рекомендуем и вам его использовать для ваших проектов.

Вы можете открыть новый проект через Anaconda Navigator, который входит в пакет Anaconda. Посмотрите это вводное видео.

Это библиотеки, которые вам понадобятся:

NumPy

NumPy позволяет легко и эффективно производить вычисления, и многие другие библиотеки основаны на нем.

Pandas

Pandas — это высокопроизводительная библиотека для анализа данных. Она построена на основе NumPy.

Matplotlib

Matplotlib — это гибкая библиотека для построения графиков и визуализации. Она мощная, но несколько громоздкая. На данном этапе вы можете пропустить Matplotlib и использовать Seaborn для начала работы (см. Seaborn ниже).

Scikit-Learn

Scikit-Learn — это главная библиотека для машинного обучения в Python. Она имеет множество популярных алгоритмов и модулей для предварительной обработки, перекрестной проверки и многого другого.

Bonus: Seaborn

Seaborn упрощает визуализацию данных. Он создан на основе Matplotlib, но более удобен и прост в использовании.

Шаг 3: Участие в проектах

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

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

Для нас важно сейчас окунуться в работу и начать применять все что мы узнали на реальных задачах. Опять же, наша цель — просто научиться достаточно, чтобы начать.

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

Для этого у вас есть несколько возможностей:

Соревнования Kaggle/QuantNet и подобных площадках.

Первым вариантом является участие в соревнованиях на Kaggle, платформе, на которой проводятся соревнования по анализу данных.

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

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

Ведь самый важный вопрос, зачастую стоящий перед такого рода специалистами – где найти реальные задачи? Здесь их достаточно.

Самостоятельные проекты

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

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

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

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

Проектные группы

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

Как и в настоящей компании, вы будете решать поставленные задачи, работая в команде. Это отличный способ прокачать soft skills, завести знакомства, попробовать себя в рабочей среде.

Шаг 4: Первая работа в data science

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

Будучи членом нашей команды, вы будете взаимодействовать с сотрудниками с опытом работы в области математики, физики и информатики.

QuantNet поощряет независимость и инициативность и предлагает возможность применять свой опыт и расти профессионально.