Чи варто перехід від R на Python? [зачинено]


31

Я щойно закінчив однорічну магістерську програму Data Science, де нас навчали Р. Я виявив, що Python є більш популярним і має більшу спільноту в ШІ.

Чи варто, щоб хтось із мого становища перейшов на Python і якщо так, то чому? Чи є у python якісь функції, що змінюють ігри, недоступні в R або це лише питання спільноти?


2
Це був курс у державному коледжі, приватному університеті чи в системі корпоративної освіти?
Мануель Родрігес

12
Ви не можете переключитися на Python. Ви не говорите про проект, про який ви вже писали в R, і хочете перенести його на Python, ви просто запитуєте про вивчення Python (не забуваючи R). Чи варто вчитися Python? Nowdays це майже неможливо НЕ навчитися Python , якщо ви працюєте з , що пов'язано з обробки даних з комп'ютером ...
lvella

1
Я не впевнений, чому це не було закрито на основі думки, але я радий.
Еворлор

1
@Evorlor Ознайомтеся з моєю відповіддю, яка справді стверджує, що це питання також призведе до передусім відповідей на думку. Крім того, я проголосував за те, щоб закрити це питання як насамперед на основі думки, хоча я також дав відповідь. На цьому веб-сайті багато питань такого типу. Я вже не впевнений, хороша це справа чи ні, але нинішні відповіді на це питання були корисні багатьом людям.
nbro

2
Як це не закрито ?? Це питання, засноване на канонічній думці.
spacetyper

Відповіді:


60

Я хочу переробити ваше запитання.

Не думайте про перемикання, подумайте про додавання.

У науці даних ви зможете зайти дуже далеко або з python, або з r, але ви підете далі з обома.

Python та r дуже добре інтегруються завдяки reticulateпакету. Я часто ввожу дані в r, тому що мені простіше, треную модель в python, щоб отримати перевагу від швидкої та візуалізувати результати r у прекрасному ggplotв одному ноутбуці!

Якщо ви вже знаєте, r немає сенсу відмовлятися від нього, використовуйте його там, де вам розумно і легко. Але на 100% гарна ідея додати python для багатьох застосувань.

Як тільки ви відчуваєте себе комфортно в обох, у вас з’явиться робочий процес, який найкраще підходить вам за домінантою улюбленої мови.


Я повністю згоден з вашою точкою зору. Просто додайте його і намагайтеся не відмовлятися від набору вмінь R.
Єнс Кол

3
підняти для reticulate. rstudio навіть має деяку підтримку для перевірки python і зараз додає більше
блюз

Єдина проблема використання обох полягає в тому, що ви змушуєте всіх інших нижче за течією залежати від того, щоб мати R та Python. Хоча я погоджуюся про "додавання" до вашого набору вмінь - я все одно залишаю речі чистими під час написання сценаріїв!
PascalVKooten

reticulateдозволяє R використовувати Python; аналогічно, rpy2дозволяє Python використовувати R. Це звичайно для мов програмування з подібними цілями, щоб мати якийсь спосіб спілкування один з одним.
JG

Саме так. Не торгуйте своїм інструментом, а додайте його до пояса. Тепер у вас є більше інструментів, що дозволяють краще вирішити більше проблем.
Щогла

28

Звичайно, цей тип запитань також призведе до передусім відповідей, заснованих на думці. Тим не менш, можна перерахувати сильні та слабкі сторони кожної мови стосовно машинного навчання, статистики та аналізу даних, які я спробую перелічити нижче.

R

Сильні сторони

  • R був розроблений та розроблений для статистиків та аналітиків даних, тому він забезпечує позабіржові (тобто вони є частиною самої мови), функції та засоби для статистиків, які недоступні в Python, якщо ви не встановити відповідний пакет. Наприклад, кадр даних, який Python не надає, якщо ви не встановите відомий pandasпакет Python . Є й інші приклади, такі як матриці, вектори тощо. У Python також існують подібні структури даних, але вони є більш загальними, тому спеціально не орієнтовані на статистиків.

  • Є багато статистичних бібліотек.

Слабкість

Пітон

Сильні сторони

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

  • Спільнота Python, ймовірно, набагато більша, ніж спільнота R. Насправді, наприклад, якщо подивитися на індекс Тіобе , Python знаходиться на 3-му місці, а R - на 20-му місці.

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

  • Існує багато бібліотек машинного навчання (наприклад, TensorFlow і PyTorch).

Слабкість

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

Є й інші можливі переваги та недоліки цих мов. Наприклад, обидві мови динамічні. Однак ця функція може бути як перевагою, так і недоліком (і вона не суворо пов'язана з машинним навчанням чи статистикою), тому я не перераховував її вище. Я уникав згадувати особливості мови, що вважають впевненими, такі як читабельність коду та крива навчання, з зрозумілих причин (наприклад, не всі люди мають однаковий досвід програмування).

Висновок

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


3
Здається, набір функцій "поза коробкою" не має значення. Відповідна річ - наявність пакетів, які роблять те, що ви хочете, ні?
Дін Макгрегор

1
@DeanMacGregor Якщо у вас немає доступу до Інтернету, ця функція є актуальною! Крім того, якщо мова програмування вже надає функцію поза коробкою, вам не доведеться втрачати час на її пошук.
nbro

Зважаючи на те, що Python сильно заражений тим, що він "включені батареї", його слабкість не є тією, з якою ви стикаєтеся часто. Тим більше , що є Python установка у використанні , які роблять уже статистичні пакети включені. Зокрема, для наукових даних анаконда досить популярна і вирішує вашу негайну проблему.
Щогла

6

У мене не було цього вибору, тому що я був змушений перейти з R на Python:

Це залежить від вашого оточення : Коли ви перебуваєте в інженерному відділі, робоча технічна група чи щось подібне, ніж Python, є більш можливим.

Коли вас оточують вчені і особливо статистики , залишайтеся з Р.

PS: R пропонує також кери і тензорфлоу, хоча вони реалізовані під кришкою пітона. Тільки дуже вдосконалений матеріал зробить вас потрібним Python. Хоча я все більше і більше звикаю до Python, syntax в R простіше . І хоча кожен пакет має своє власне, він якимось чином узгоджується, поки Python не є .. І ggplot настільки сильний. У Python є клон (plotnine), але він не має кількох (важливих) особливостей. В принципі, ви можете зробити майже стільки ж, скільки в R, але особливо візуалізація та збір даних набагато простіше в Р. Отже, найвідоміша бібліотека Python - панди - це клон Р.

PSS: Розширена статистика, безумовно, спрямована на R. Python, пропонує безліч повсякденних інструментів та методів для вченого, але це ніколи не досягне тих, що> 13000 пакетів, які надає R. Наприклад, мені довелося зробити зворотну регресію, і python цього не пропонує. У R ви можете вибирати між декількома тестами довіри та лінійними чи нелінійними. Те саме стосується і змішаних моделей: він реалізований у python, але він настільки базовий, що я не можу зрозуміти, наскільки це може бути достатнім для когось.


4

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

Крім того, вивчення другої мови покращить ваші навички програмування.

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

  • R насправді хороший для приготування столу. Якщо більшість того, що збирається робити певна програма, - це згладжувати деякі таблиці в різні форми, то R - це те, що потрібно вибрати. У Python є інструменти для цього, але R призначений для цього і робить це краще.
  • Варто переходити на R, коли потрібно скласти графік, оскільки ggplot2 - це шедевр зручності використання API та matplotlib - це повзаючий жах.
  • Python добре розроблений для програмування загального призначення. Він має дуже добре розроблений набір стандартних структур даних, стандартних бібліотек та операторів управління потоком.
  • R погано підходить для програмування загального призначення. Він не добре обробляє дані, структуровані по деревах або структурованих по графах. У ньому є деякі правила (наприклад, можливість вивчити та змінити батьківський обсяг), які відразу зручні, але при їх використанні ведуть до таких програм, які важко вирощувати, змінювати чи створювати.
  • R також має в цьому деякі прямо погані речі. Це здебільшого лише історичні залишки, як три різні об'єктні системи.

Щоб детальніше зупинитися на останньому пункті: комп’ютерне програмування зроблено добре - це лего, де ви робите свої цегли (функції та модулі).

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

R заохочує розплавити всі цеглини разом.


1

Як казали інші, це не "перемикач". Але чи варто додати Python до свого арсеналу? Я б точно сказав. У науці даних Python популярний і стає все більш популярним, тоді як R дещо відступає. І в галузі машинного навчання та нейронних мереж я б сказав, що Python є основною мовою зараз - я не думаю, що R насправді наближається сюди з точки зору використання. Причиною всього цього є загальність. Python призначений як загальна мова програмування і дозволяє легко скриптувати всі види завдань. Якщо ви знаходитесь строго в чітко структурованому статистичному світі, R - це чудово, але з AI вам часто доводиться робити нові, різні речі, і я не думаю, що R може перемогти Python при цьому. І через це,


0

Це абсолютно моя особиста думка.

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

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

Що стосується комутатора, я буду використовувати найефективніший інструмент, який я знаю (де ефективність вимірюється потребою клієнта, вкладенням часу та витрат та простотою кодування). Чим більше знаю я інструментів, тим веселіше! Звичайно, для цього є практична межа.

Все це моя особиста думка і не обов’язково правильне.


0

Здається, що ви інвестували 1 рік у наукову інформацію з R та вбудовувались у середовище R, але хочете вивчити пітон для науки даних.

Спочатку вивчіть основи пітона, як-от як працюють списки та кортеж, і як працюють класи та об’єкти.

Потім забруднити руки такими бібліотеками, як нудні матплотліб-панди. Вивчіть tensorflow або keras, а потім перейдіть до науки про дані.


-1

Людина, яка переслідує двох кроликів, не ловить жодного

І так, Python є більш популярним. Я працюю в обох, але, ділово кажучи, знайти роботу на Python легко, ніж у Р.

Отже, ви могли:

  • Виберіть Python, оскільки він популярніший. Однак починати потрібно з нуля.

Або

  • Зрештою, залишайся на R, адже ти маєш рік навчання з Р. Але це не популярно.

Пропозиція про те, що вивчення додаткової мови програмування якимось чином залишить вас гіршими, - це нісенітниця. Вивчення додаткових мов програмування, особливо незнайомих, завжди покращить ваші навички програміста на будь-якій мові.
Буде Да Сільва
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.