Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Какой язык лучше для анализа данных и статистики: Python vs R? С каким работают ведущие data science специалисты и почему?

ТехнологииПрограммирование
Veselovka Aktiv h.
  ·   · 8,1 K
Инвестиции Финансовые рынки Блокчейн Финтех...  · 6 июл 2016

R - язык для обучения, исследований и быстрого прототипирования. Не согласен с тем, что он "сложнее Python в освоении": наверное, он сложнее для программиста, но для человека не изнуренного Паскалем он намного проще, поскольку более человечен. Таков мой личный опыт преподавания R с 2011 года. Он специализированный, прощает многие ошибки непрофессиональных пользователей (которые Python не простит),  его легко инсталлировать; он отлично работает с векторами - это вообще его идеология, заточенная под анализ данных; но он неэффективно работает с памятью и он медленный. Ориентация R на векторы и матрицы становится препятствием для опытных программистов, но для пользователей Excel это вещь интуитивно понятная: простые люди не умеют циклы (в R их лучше избегать - все медленно), а обработку данных мыслят как обработку колонок. По сравнению с Питоном, установка новых пакетов в R - это рай: все зависимости подгружаются сами, никогда не произойдет так, что вы день торчите на форумах, пытаясь понять что и откуда нужно подкачать, чтобы подкачать то, что позволит вам подкачать то, что позволит вам установить штуку, которая даст наконец возможность подкачать нужный пакет (причем этих штук обязательно окажется несколько, или несколько версий, или их нужно будет собирать у вас на компе, и т.п.) Узкая специализация, бесплатность, ориентация на непрограммистов и долгий срок жизни привели к тому, что вокруг R сложилась колоссальная экосистема: stackoverflow, масса форумов и блогов (r-bloggers.com), огромное количество учебников и учебных курсов, в том числе онлайновых, но самое главное (как отметил один из предыдущих ораторов) - в R реализовано все, что существует в data science, и даже сверх того. Все это определило сценарии использования R. Например, люди (специалисты по риск-менеджменту и анализу рынка), которые делают информационно-аналитическую платформу Bloomberg, сначала прототипируют модели в R, а потом программисты переписывают код на более эффективном C++. Но даже копирование вектора в C++ - это целая история, с точки зрения пользователя R. Важный момент - что исследователи-непрограммисты (они же часто и преподаватели экономики, финансов, социологии, психологии, биологии, зоологии и проч.) переходят на R в силу вышеописанных причин. А студенты учат язык, который знают их преподаватели :) В итоге мы имеем большую комьюнити, в которой все знают R и используют его для коммуникации научных результатов (Sweave в помощь). 

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

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

Спасибо за развернутый ответ! Подскажите, насколько легко, по вашему мнению, R "ляжет" сверху на Python, с точки... Читать дальше
Программист. Python-разработчик, занимаюсь...  · 3 окт 2021  · unitbushmakov.ru
Оба языка хорошо справляются c этой областью , тут уже все зависит во 1 на чем вам удобнее писать , во 2 на каком языке пишет отдел-разработчиков вашей копании. Лично я пишу на Python так как по мне все же он удобнее и его... Читать далее
Эксперт Яндекс.Q в области медицинской и криминаль...  · 5 июл 2016  · goshapsy.ru
Отвечу за психологов-исследователей. Сейчас все больше переходят на R (раннее активно использовался SPSS). Главная причина - бесплатно. Подозреваю что и в освоении он попроще Python, в силу узкой специализации. + предлагаю к... Читать далее
Мой сайт. Там есть ссылки на другие проекты и способы связаться со мной.Перейти на goshapsy.ru

Статью уже эту читал. Спасибо за ответ! Если есть друзья, которые могут разжевать подробнее - зовите:)

PhD математика  · 10 июл 2016
Если данные небольшие по размеру, то и тем и другим можно пользоваться. Хотя все же лучше сделать Python основным так как из него легко вызвать R (rpy2 package) и есть очень полезный для data science пакет pandas. R хорош для... Читать далее
Погромист, на инструментах игрец  · 5 июл 2016
Я не профессионал из data science, но близок к области. По теме -- вероятно, это холивар и прямого ответа нет. Библиотека R развивается так давно, что на нем написано едва ли не все, что люди придумали в data science. R был... Читать далее
Будут какие-то сложности в изучении R, если уже знаешь Python? Есть в них какие-то противоречия, которые будут... Читать дальше
Вопрос, про который исписано уже много и над которым сам думал пару лет назад. Я за свою карьеру попробовал оба языка – вначале R, потом Python. Мне повезло работать в стартапе, где весь бэкэнд был написан на Питоне – поэтому... Читать далее