Стоит ли переходить с R на Python? [закрыто]

31

Я только что закончил 1-летнюю магистерскую программу Data Science, где нас учили R. Я обнаружил, что Python более популярен и имеет большее сообщество по искусственному интеллекту.

Стоит ли кому-то в моей должности переходить на Python и если да, то почему? Есть ли у python какие-либо изменяющие игру функции, недоступные в R, или это просто вопрос сообщества?

Это я Марио
источник
2
Это был курс в государственном колледже, частном университете или в корпоративной системе образования?
Мануэль Родригес
12
Вы не можете переключиться на Python. Вы не говорите о проекте, который вы уже написали на R, и хотите перенести его на Python, вы просто спрашиваете об изучении Python (не забывая R). Стоит ли изучать Python? Nowdays это почти невозможно не научиться Python , если вы работаете с , что связано с обработки данных с компьютером ...
lvella
1
Я не уверен, почему это не было закрыто как основанное на мнении, но я рад.
Evorlor
1
@ Evorlor Посмотрите мой ответ, в котором действительно говорится, что этот вопрос также приведет к главным образом основанным на мнении ответам. Кроме того, я проголосовал за то, чтобы закрыть этот вопрос как основанный на мнении, хотя я также дал ответ. На этом сайте много вопросов такого типа. Я больше не уверен, хорошо это или нет, но текущие ответы на этот вопрос были полезны для многих людей.
nbro
2
Как это не закрыто ?? Это вопрос, основанный на каноническом мнении.
spacetyper

Ответы:

60

Я хочу переосмыслить ваш вопрос.

Не думай о переключении, думай о добавлении.

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

Благодаря reticulateпакету Python и r очень хорошо интегрируются . Я часто убираю данные в r, потому что мне легче тренировать модель на python, чтобы получить выгоду от превосходной скорости и визуализировать результаты в r в прекрасном, ggplotвсе в одном блокноте!

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

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

Fnguyen
источник
Я полностью согласен с вашей точкой зрения. Просто добавьте его и постарайтесь не отказываться от своего набора навыков R.
Дженс Кол
3
Упражнение для reticulate. rstudio даже имеет некоторую поддержку для проверки Python и находится в процессе добавления еще
блюз
Единственная проблема с использованием обоих заключается в том, что вы заставляете всех остальных вниз по течению зависеть от наличия R и Python. Хотя я согласен на «добавление» в ваш набор навыков - я все равно буду сохранять чистоту при написании сценариев!
PascalVKooten
reticulateпозволяет R использовать Python; аналогично, rpy2позволяет Python использовать R. Обычно языки программирования со схожими целями имеют возможность общаться друг с другом.
JG
В точку. Не торгуйте своим инструментом, но добавьте его к своему поясу. Теперь у вас есть больше инструментов, позволяющих решать больше проблем лучшим способом.
Мачт
28

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

р

Сильные стороны

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

  • Есть много статистических библиотек.

Слабое место

  • Учитывая его назначение, R в основном используется для решения задач статистики или анализа данных. Тем не менее, он также может быть использован за пределами этого домена. См., Например, этот вопрос Quora: R используется вне статистики и анализа данных? ,

питон

Сильные стороны

  • Многие люди и компании, в том числе Google и Facebook, много инвестируют в Python. Например, основным языком программирования TensorFlow и PyTorch (двух широко используемых систем машинного обучения) является Python. Таким образом, очень маловероятно, что Python не будет широко использоваться в машинном обучении еще как минимум 5-10 лет.

  • Сообщество Python, вероятно, намного больше, чем сообщество R. На самом деле, например, если вы посмотрите на индекс Тиобе , Python находится на третьем месте, а R - на 20-м.

  • Python также широко используется за пределами сообщества статистики или машинного обучения. Например, он используется для веб-разработки (см., Например, Python Frameworks Django или Flask).

  • Есть много библиотек машинного обучения (например, TensorFlow и PyTorch).

Слабое место

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

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

Вывод

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

nbro
источник
3
Кажется, что набор функций «из коробки» не имеет значения. Актуальным является наличие пакетов, которые делают то, что вы хотите, нет?
Дин МакГрегор
1
@DeanMacGregor Если у вас нет доступа к Интернету, эта функция актуальна! Кроме того, если язык программирования уже предоставляет функцию из коробки, вам не придется терять время на ее поиск.
nbro
Учитывая, что Python сильно заражен тем, что в него входят «батареи», его слабость встречается не часто. Тем более , что есть Python установка в использовании , которые делают уже статистические пакеты включены. Для науки о данных, в частности, Anaconda довольно популярна и решает вашу непосредственную задачу.
Мачт
6

У меня не было этого выбора, потому что я был вынужден перейти с R на Python:

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

Если вас окружают ученые и особенно статистики , оставайтесь с Р.

PS: R предлагает керасы и тензорный поток, хотя он реализован под капотом Python. Только очень продвинутый материал заставит вас нуждаться в Python. Хотя я все больше привыкаю к ​​Python, синтакс в R проще . И хотя каждый пакет имеет свой собственный, он как-то непротиворечив, в то время как Python - нет. И ggplot такой сильный. В Python есть клон (plotnine), но ему не хватает нескольких (важных) функций. В принципе, вы можете сделать почти столько же, сколько в R, но особенно визуализация и обработка данных намного проще в R. Таким образом, самая известная библиотека Python, pandas, является клоном R.

PSS: Продвинутая статистика определенно нацелена на R. Python предлагает множество ежедневных инструментов и методов для исследователя данных, но он никогда не достигнет тех> 13 000 пакетов, которые предоставляет R. Например, я должен был сделать обратную регрессию, а python не предлагает этого. В R вы можете выбрать между несколькими доверительными тестами, будь то линейный или нелинейный. То же самое относится и к смешанным моделям: это реализовано на python, но это настолько просто, что я не могу понять, как этого может быть достаточно для кого-то.

Бен
источник
4

Я бы сказал, да. Python лучше, чем R для большинства задач, но у R есть своя ниша, и вы все равно захотите использовать ее во многих случаях.

Кроме того, изучение второго языка улучшит ваши навыки программирования.

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

  • R действительно хорош для затирания столов. Если большая часть того, что собирается сделать конкретная программа, это смушить некоторые таблицы в разные формы, тогда лучше всего выбрать R. У Python есть инструменты для этого, но R предназначен для этого и делает это лучше.
  • Стоит переходить на R всякий раз, когда вам нужно сделать диаграмму, потому что ggplot2 является шедевром юзабилити API и matplotlib - это ужас.
  • Python хорошо разработан для программирования общего назначения. Он имеет очень хорошо разработанный набор стандартных структур данных, стандартных библиотек и операторов потока управления.
  • R плохо подходит для программирования общего назначения. Он плохо обрабатывает данные с древовидной или графической структурой. У него есть некоторые правила (например, возможность просматривать и изменять родительскую область видимости), которые сразу удобны, но при использовании приводят к программам, которые трудно расширять, изменять или составлять.
  • В R тоже есть что-то плохое. В основном это просто исторические остатки, подобные трем различным объектным системам.

Чтобы более подробно остановиться на последнем пункте: компьютерное программирование сделано хорошо, когда вы создаете свои собственные кирпичики (функции и модули).

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

R призывает вас плавить все кирпичи вместе.

Glenns
источник
1

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

Denziloe
источник
0

Это полностью мое личное мнение.

Я прочитал в своем офисе (на строительной площадке), что «для каждой задачи найдется подходящий инструмент».

Я ожидаю, что я столкнусь с множеством задач, как программист. Мне нужно столько инструментов, сколько я могу «купить или инвестировать», насколько это возможно. Однажды один инструмент поможет мне решить эту проблему, другой - другой инструмент. R (для статистики) и Python (для вообще) - это два инструмента, которые я определенно хочу иметь при себе, и я думаю, что это стоит вложений для меня.

Что касается переключения, я буду использовать самый эффективный инструмент, который я знаю (где эффективность измеряется требованиями клиента, затратами времени и средств и простотой кодирования). Чем больше инструментов я знаю, тем лучше! Конечно, есть практический предел этому.

Все это мое личное мнение и не обязательно правильное.

Amit
источник
0

Похоже, вы потратили 1 год на науку данных с помощью R и внедрили ее в среду R, но хотите изучить python для науки о данных.

Сначала изучите основы Python, например, как работают списки и кортежи и как работают классы и объекты.

Тогда запачкайте руки некоторыми библиотеками, такими как numpy matplotlib pandas. Изучите тензорный поток или керас, а затем перейдите к науке о данных.

Нитиш Кумар
источник
-1

Человек, который преследует двух кроликов, не ловит ни

И да, Python более популярен. Я работаю в обоих, но, говоря по-деловому, найти работу на Python легче, чем в R.

Итак, вы могли бы:

  • Выберите Python, потому что он более популярен. Тем не менее, вы должны начать с нуля.

Или

  • Оставайтесь с R, в конце концов, у вас есть год обучения с R. Но это не популярно.
Магеллана
источник
Предложение о том, что изучение дополнительного языка программирования каким-то образом оставит вас в худшем положении, бессмысленно. Изучение дополнительных языков программирования, особенно тех, которые незнакомы, всегда улучшит ваши навыки программиста на любом языке.
Уилл Да Силва