Я только что закончил 1-летнюю магистерскую программу Data Science, где нас учили R. Я обнаружил, что Python более популярен и имеет большее сообщество по искусственному интеллекту.
Стоит ли кому-то в моей должности переходить на Python и если да, то почему? Есть ли у python какие-либо изменяющие игру функции, недоступные в R, или это просто вопрос сообщества?
python
comparison
r
Это я Марио
источник
источник
Ответы:
Я хочу переосмыслить ваш вопрос.
Не думай о переключении, думай о добавлении.
В науке о данных вы сможете пойти очень далеко с Python или R, но вы оба пойдете дальше.
Благодаря
reticulate
пакету Python и r очень хорошо интегрируются . Я часто убираю данные в r, потому что мне легче тренировать модель на python, чтобы получить выгоду от превосходной скорости и визуализировать результаты в r в прекрасном,ggplot
все в одном блокноте!Если вы уже знаете, что нет смысла отказываться от него, используйте его там, где это разумно и легко для вас. Но это хорошая идея добавить Python для многих целей.
Как только вы почувствуете себя комфортно в обоих случаях, вы получите рабочий процесс, который подходит вам лучше всего с вашим любимым языком.
источник
reticulate
. rstudio даже имеет некоторую поддержку для проверки Python и находится в процессе добавления ещеreticulate
позволяет R использовать Python; аналогично,rpy2
позволяет Python использовать R. Обычно языки программирования со схожими целями имеют возможность общаться друг с другом.Конечно, этот тип вопросов также приведет к главным образом основанным на мнении ответам. Тем не менее, можно перечислить сильные и слабые стороны каждого языка в отношении задач машинного обучения, статистики и анализа данных, которые я постараюсь перечислить ниже.
р
Сильные стороны
R был разработан и разработан для статистиков и аналитиков данных, поэтому он предоставляет готовые (то есть они являются частью самого языка) функции и возможности для статистиков, которые недоступны в Python, если только вы установить связанный пакет. Например, фрейм данных, который Python не предоставляет, если вы не установите известный
pandas
пакет Python . Существуют и другие примеры, такие как матрицы, векторы и т. Д. В Python также есть схожие структуры данных, но они носят более общий характер и поэтому специально не предназначены для статистиков.Есть много статистических библиотек.
Слабое место
питон
Сильные стороны
Многие люди и компании, в том числе Google и Facebook, много инвестируют в Python. Например, основным языком программирования TensorFlow и PyTorch (двух широко используемых систем машинного обучения) является Python. Таким образом, очень маловероятно, что Python не будет широко использоваться в машинном обучении еще как минимум 5-10 лет.
Сообщество Python, вероятно, намного больше, чем сообщество R. На самом деле, например, если вы посмотрите на индекс Тиобе , Python находится на третьем месте, а R - на 20-м.
Python также широко используется за пределами сообщества статистики или машинного обучения. Например, он используется для веб-разработки (см., Например, Python Frameworks Django или Flask).
Есть много библиотек машинного обучения (например, TensorFlow и PyTorch).
Слабое место
Есть и другие возможные преимущества и недостатки этих языков. Например, оба языка являются динамическими. Однако эта функция может быть как преимуществом, так и недостатком (и она не связана строго с машинным обучением или статистикой), поэтому я не перечислял ее выше. По понятным причинам я избегал упоминать такие упрямые возможности языка, как читаемость кода и кривая обучения (например, не все люди имеют одинаковый опыт программирования).
Вывод
Python определенно стоит изучить, если вы изучаете машинное обучение или статистику. Однако это не значит, что вы больше не будете использовать R. R может быть еще удобнее для определенных задач.
источник
У меня не было этого выбора, потому что я был вынужден перейти с 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, но это настолько просто, что я не могу понять, как этого может быть достаточно для кого-то.
источник
Я бы сказал, да. Python лучше, чем R для большинства задач, но у R есть своя ниша, и вы все равно захотите использовать ее во многих случаях.
Кроме того, изучение второго языка улучшит ваши навыки программирования.
Моя собственная точка зрения на сильные стороны R против Python заключается в том, что я бы предпочел R для небольшой специализированной программы, включающей таблицы или диаграммы, или исследовательскую работу в том же духе. Я бы предпочел Python для всего остального.
Чтобы более подробно остановиться на последнем пункте: компьютерное программирование сделано хорошо, когда вы создаете свои собственные кирпичики (функции и модули).
Программы обычно модифицируются и перепрофилируются после их первоначального дизайна. Создавая их, полезно подумать о том, какие части можно использовать повторно, и построить эти части в общем виде, который позволит им подключаться к другим элементам.
R призывает вас плавить все кирпичи вместе.
источник
Как уже говорили другие, это не «переключатель». Но стоит ли добавлять Python в свой арсенал? Я бы сказал, конечно. В науке о данных Python популярен и становится все более популярным, а R несколько отступает. И в области машинного обучения и нейронных сетей я бы сказал, что Python сейчас является основным языком - я не думаю, что R действительно подходит здесь с точки зрения использования. Причиной всего этого является общность. Python предназначен для общего языка программирования и позволяет легко создавать сценарии для всех видов задач. Если вы находитесь строго в четко структурированном статистическом мире, R - это здорово, но с ИИ вам часто приходится сталкиваться с новыми, разными вещами, и я не думаю, что R может победить Python в этом. И из-за этого
источник
Это полностью мое личное мнение.
Я прочитал в своем офисе (на строительной площадке), что «для каждой задачи найдется подходящий инструмент».
Я ожидаю, что я столкнусь с множеством задач, как программист. Мне нужно столько инструментов, сколько я могу «купить или инвестировать», насколько это возможно. Однажды один инструмент поможет мне решить эту проблему, другой - другой инструмент. R (для статистики) и Python (для вообще) - это два инструмента, которые я определенно хочу иметь при себе, и я думаю, что это стоит вложений для меня.
Что касается переключения, я буду использовать самый эффективный инструмент, который я знаю (где эффективность измеряется требованиями клиента, затратами времени и средств и простотой кодирования). Чем больше инструментов я знаю, тем лучше! Конечно, есть практический предел этому.
Все это мое личное мнение и не обязательно правильное.
источник
Похоже, вы потратили 1 год на науку данных с помощью R и внедрили ее в среду R, но хотите изучить python для науки о данных.
Сначала изучите основы Python, например, как работают списки и кортежи и как работают классы и объекты.
Тогда запачкайте руки некоторыми библиотеками, такими как numpy matplotlib pandas. Изучите тензорный поток или керас, а затем перейдите к науке о данных.
источник
И да, Python более популярен. Я работаю в обоих, но, говоря по-деловому, найти работу на Python легче, чем в R.
Итак, вы могли бы:
Или
источник