Сбер вакансии Backend
Сбер вакансии Backend
Сбер вакансии Backend
Написать пост

Python vs. R: что выбрать для Data Science начинающему специалисту?

Python и R —два самых популярных языка для Data Science. Какой из них выбрать? Разбираемся в плюсах, минусах и инструментах обоих языков.

21К открытий22К показов

Python и R давно стали стандартом для Data Science. Суть их противостояния в том, что оба языка прекрасно подходят для работы со статистикой. В то время как Python характеризуется понятным синтаксисом и большим количеством библиотек, язык R разрабатывался целенаправленно для специалистов по статистике, а посему оснащён качественной визуализацией данных. Особняком стоит SQL — потому что, если данные уже лежат в таблицах, то это скорее везение, чем повод для расстройств, — и Scala — в основном благодаря тому, что на ней написан популярнейший фреймворк распределённой обработки данных Spark.

Чтобы провести первичный анализ данных и принять решение о дальнейшей судьбе фичи, достаточно средств одного только SQL и командной строки, ведь data science — это, в первую очередь, не про библиотеки с броскими названиями, а про подход. Тем не менее, такой минимализм имеет свой предел (а новичка вообще может отпугнуть), и в какой-то момент всё же придётся обратиться к более продвинутым инструментам исследования.

В этой статье мы вместе со SkillFactory разобрали для вас преимущества и недостатки R и Python в качестве первых языков в карьере data scientist’а. Разработчикам, желающим добавить строчку с полезным навыком в резюме, тоже будет интересно.

Python

Совершенно незаметно подкралось тридцатилетие Python. За свою уже немалую историю Python несколько раз перерождался, теряя обратную совместимость, но всегда оставался популярен как среди разработчиков в общем, так, в частности, и среди data scientist’ов. На это есть несколько причин.

Преимущества Python в Data Science

  • Простой, но выразительный синтаксис. Знание английского языка на уровне первых классов школы — это уже победа, потому что азы Python можно считать освоенными. Дальше будет не сильно сложнее. Если же вы уже знакомы, например, с Java, то вы будете приятно удивлены тем, как легко сказать миру «привет».
  • Богатый выбор библиотек. И речь не только о библиотеках алгоритмов машинного обучения — на Python разрабатывают облачные хранилища, стриминговые сервисы, и даже игры (хоть в них иногда и приходится обыгрывать тормоза как фичу, а не баг).
  • Высокая культура документации. Сам Python прекрасно документирован, и обычно библиотеки на нём продолжают эту традицию.

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

Python-инструменты для data scientist

Как уже упоминалось ранее, Python примечателен своим обширным набором библиотек и инструментов. Говоря о data science, нужно в первую очередь упомянуть следующие:

  • Pandas — библиотека для манипулирования данными с огромными возможностями. Позволяет очень быстро провести исследование новых данных, протестировать гипотезы, получить отчёт. Одно из главных преимуществ Python.
  • Scikit-learn — большая библиотека алгоритмов машинного обучения и обработки данных. Немалую часть соревнований на Kaggle выиграли пользуясь только ей в паре с Pandas.
  • Keras и PyTorch — библиотеки, используемые для обучения глубоких нейронных сетей. Подходят для задач, связанных с изображениями, аудио и видео файлами.
  • IPython Notebook — рассказывая о Python нельзя не упомянуть о нём. Стандартная среда разработки не совсем подходит data scientist’у в процессе исследования данных. Есть потребность в таком формате, который позволил бы, например, запустить затратный алгоритм, а когда он завершится — поиграть немного с результатами, исследовать их и построить графики. Здесь на помощь и приходит формат ноутбука. Это графический интерфейс, который открывается в обычном браузере и представляет из себя последовательность ячеек, где можно писать и исполнять код, используя при этом общую память для хранения данных.

Кстати, именно Python — основный язык курса «Профессия Data Scientist» от SkillFactory. При этом знать его не обязательно: вы освоите его в процессе обучения на примере реальных задач.

R

В 2020 году язык R остаётся одним из самых популярных для Data Science и статистики, стабильно завоёвывая всё большую долю просмотров в соответствующих разделах StackOverflow. При этом, со значительным перевесом лидируют вопросы академического характера: в первую очередь, R — это язык с богатым набором библиотек по машинному обучению и статистике, что особенно важно в исследовательских целях.

Преимущества R в Data Science

  • Богатая ML экосистема, огромное количество библиотек статистических методов. Как уже было замечено ранее, R особенно популярен в академической среде, что и приводит к тому, что часто новые методы впервые имплементируются именно на нём.
  • Достаточно удобная проприетарная среда разработки RStudio, с которой будет легко разобраться, если у вас был опыт в MATLAB.
  • Необычный синтаксис, заточенный под нужды статистики. Опытный программист со знанием другого языка может испытать трудности акклиматизации, зато пользователи с математическим бэкграундом легко воспримут логику языка.
  • Нативная поддержка векторных вычислений. Крутой бонус, который означает, что на R можно программировать достаточно быстрые реализации математических методов, использующих векторные и матричные вычисления.

R-инструменты для data scientist

Поговорим об упомянутых библиотечных богатствах R. Вот некоторые из базовых, но мощных библиотек, вооружившись которыми можно провести обширный рисерч или занять хорошие места в Kaggle:

  • Dplyr — «грамматика манипуляций с данными», библиотека с функциональностью, аналогичной Pandas.
  • Ggplot2 и Esquisse — мощные библиотеки для рисования графиков.
  • Shiny — полезнейшая библиотека для создания веб приложений с интерактивной визуализаций исследований.
  • Caret, randomForest, Mlr и т. д. — десятки библиотек с методами машинного обучения. Один из них точно сработает.

Python vs. R в Data Science: что лучше?

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

  1. Программировали ли вы уже на других языках? Если да, то, возможно вам потребуется некоторое время, чтобы привыкнуть к R. Python гораздо более привычен, за исключением некоторых нюансов.
  2. Планируете ли вы работать в научной области, или склоняетесь к тому, чтобы быть ближе к практике? Python больше приближен к продакшену и чаще применяется в коммерческих проектах. В то же время, в академических кругах большей популярностью пользуется R.
  3. Хотите ли вы прокачать кругозор в методах машинного обучения? Или вам достаточно будет ознакомиться с несколькими наиболее популярными методами и больше времени посвятить, например, алгоритмам обработки больших данных? В первом случае вам однозначно нужен R, во втором — больше возможностей вы найдёте в Python.
  4. Хотите ли вы заниматься внедрением своих разработок, и программировать что-либо кроме предикторов? Если да, то Python вам подойдёт лучше, но скорее всего понадобится и что-то ещё (например Java, Scala или C++).

Если вы пока не знаете ни Python, ни R, но при этом хотите работать в IT, начать вам может помочь курс «Профессия Data Scientist» от SkillFactory. Там вы сможете за 2 года стать middle Data scientist с нуля. Курс ориентирован на практические задачи и его можно совмещать с работой или учёбой.

P.S. По промокоду Tproger2020 до 15.10 действует скидка 50%
Следите за новыми постами
Следите за новыми постами по любимым темам
21К открытий22К показов