R에서 Python으로의 전환이 가치가 있습니까? [닫은]


31

방금 우리에게 R을 배운 1 년 데이터 과학 석사 프로그램을 마쳤습니다. 저는 파이썬이 더 대중적이고 AI에 더 큰 공동체가 있다는 것을 알았습니다.

제 위치에있는 누군가가 파이썬으로 바꾸는 것이 가치가 있으며, 그렇다면, 왜 그런가요? 파이썬에는 R에서 사용할 수없는 게임 변경 기능이 있습니까? 아니면 커뮤니티의 문제입니까?


2
공립 대학, 사립 대학 또는 기업 교육 시스템의 과정입니까?
Manuel Rodriguez

12
자신을 파이썬으로 바꿀 수는 없습니다 . 당신은 이미 R로 작성한 프로젝트에 대해 이야기하지 않고 그것을 파이썬으로 포팅하려고합니다. 단순히 파이썬을 배우는 것에 대해 묻는 것입니다 (R을 잊지 마십시오). 파이썬을 배울 가치가 있습니까?
요즘

1
왜 이것이 의견에 근거하여 닫히지 않았는지 모르겠지만 기쁩니다.
Evorlor

1
@Evorlor 실제로 것이 질문에 명시 내 대답은 참조 또한 주로 의견을 기반으로 답변을 날 렸습니다. 또한, 나는이 질문에 대한 답을 주었음에도 불구하고이 질문을 기본적으로 의견 기반으로 폐쇄하기로 투표했습니다. 이 웹 사이트에는이 유형에 대한 많은 질문이 있습니다. 나는 이것이 좋은지 아닌지 확신하지 못하지만이 질문에 대한 현재 답변은 많은 사람들에게 유용했습니다.
nbro

2
이것은 어떻게 닫히지 않습니까? 이것은 정식 의견 기반 질문입니다.
spacetyper

답변:


60

질문을 다시 작성하고 싶습니다.

전환에 대해 생각하지 말고 추가에 대해 생각하십시오.

데이터 과학에서는 파이썬이나 r을 사용하여 멀리 갈 수 있지만 둘 다를 사용하면 가장 멀리 갈 수 있습니다.

reticulate패키지 덕분에 파이썬과 r은 잘 통합 됩니다. 나는 종종 r에서 데이터를 정리하기가 더 쉽다. 파이썬에서 모델을 훈련시켜 우수한 속도의 이점을 얻고 r의 결과 ggplot를 하나의 노트북 에서 아름답게 시각화한다 !

이미 알지 못한다면 그것을 버리는 것이 의미가 없다면, 현명하고 쉬운 곳에 그것을 사용하십시오. 그러나 많은 용도로 파이썬을 추가하는 것이 100 % 좋습니다.

둘 다 편안하다고 느끼면 좋아하는 언어가 가장 잘 맞는 워크 플로를 갖게됩니다.


나는 당신의 관점에 전적으로 동의합니다. 그냥 추가하고 R 스킬 세트를 포기하지 마십시오.
Jens Kohl

3
에 대한 찬성 reticulate. rstudio는 파이썬 검사를 지원하기도하며 추가 작업을 진행 중입니다.
Blues

두 가지를 모두 사용하는 유일한 문제는 다른 모든 다운 스트림이 R과 Python을 사용하는 데 의존한다는 것입니다. 나는 당신의 스킬 셋에 "추가"하는 것에 동의하지만 스크립트를 작성할 때 여전히 순수한 것을 유지합니다!
PascalVKooten

reticulateR이 파이썬을 사용할 수있게한다; 비슷하게, rpy2파이썬이 R을 사용할 수있게합니다. 비슷한 목적으로 프로그래밍 언어가 서로 대화 할 수있는 방법이있는 것이 일반적입니다.
JG

정확하게. 공구를 거래하지 말고 벨트에 공구를 추가하십시오. 이제 더 많은 도구를 사용하여 더 많은 방법으로 더 많은 문제를 해결할 수 있습니다.
마스트

28

물론 이러한 유형의 질문은 주로 의견 기반 답변으로 이어질 것입니다. 그럼에도 불구하고 머신 러닝, 통계 및 데이터 분석 작업과 관련하여 각 언어의 강점과 약점을 열거 할 수 있습니다. 아래에 나열하겠습니다.

아르 자형

강점

  • R은 통계 학자 및 데이터 분석가를 위해 설계 및 개발되었으므로 즉시 사용할 수있는 (즉, 언어 자체의 일부 임) 통계학자를위한 기능 및 기능을 제공합니다. 관련 패키지를 설치하십시오. 예를 들어 유명한 Python pandas패키지 를 설치하지 않는 한 Python에서 제공하지 않는 데이터 프레임 . 행렬, 벡터 등과 같은 다른 예제가 있습니다. 파이썬에는 비슷한 데이터 구조도 있지만 더 일반적이므로 통계학자를 대상으로하지는 않습니다.

  • 통계 라이브러리가 많이 있습니다.

약점

파이썬

강점

  • 구글과 페이스 북을 포함한 많은 사람들과 회사들이 파이썬에 많은 투자를한다. 예를 들어, TensorFlow 및 PyTorch의 주요 프로그래밍 언어 (두 가지 널리 사용되는 기계 학습 프레임 워크)는 Python입니다. 따라서 파이썬이 5-10 년 이상 기계 학습에 계속 널리 사용되지는 않을 것입니다.

  • 파이썬 커뮤니티는 R 커뮤니티보다 훨씬 클 것입니다. 실제로, 예를 들어 Tiobe의 index 를 보면 Python은 3 위이고 R은 20 위입니다.

  • 파이썬은 통계 나 머신 러닝 커뮤니티 밖에서도 널리 사용됩니다. 예를 들어, 웹 개발에 사용됩니다 (예 : Python 프레임 워크 Django 또는 Flask 참조).

  • 많은 머신 러닝 라이브러리 (예 : TensorFlow 및 PyTorch)가 있습니다.

약점

  • 적절한 패키지를 설치하지 않으면 R에서 제공하는 통계 및 데이터 분석 기능을 기본적으로 제공하지 않습니다. 이것은 철학적 관점에 따라 약점 또는 강점 일 수 있습니다.

이 언어의 다른 장점과 단점이 있습니다. 예를 들어 두 언어 모두 동적입니다. 그러나이 기능은 장점과 단점이 될 수 있으며 (기계 학습이나 통계와 엄격하게 관련되지는 않습니다) 위에 언급하지 않았습니다. 명백한 이유로 코드 가독성 및 학습 곡선과 같은 의견이 많은 언어 기능은 언급하지 않았습니다 (예 : 모든 사람이 동일한 프로그래밍 경험을 갖는 것은 아님).

결론

머신 러닝이나 통계를 공부한다면 파이썬은 확실히 배울만 한 가치가 있습니다. 그러나 더 이상 R을 사용하지 않는다는 의미는 아닙니다. R은 여전히 ​​특정 작업에 더 편리 할 수 ​​있습니다.


3
"기본 제공"기능 세트는 관련이없는 것 같습니다. 관련있는 것은 원하는 것을하는 패키지의 가용성입니다.
Dean MacGregor

1
@DeanMacGregor 인터넷에 액세스 할 수없는 경우이 기능이 적합합니다! 또한 프로그래밍 언어가 이미 기본적으로 기능을 제공하는 경우 해당 기능을 찾는 데 시간을 낭비하지 않아도됩니다.
nbro

파이썬이 '배터리 포함'에 크게 몰려 있다는 것을 고려할 때, 약점은 자주 접하는 것이 아닙니다. 사용 파이썬 설치가 특히 때문에 통계 패키지를 포함했다가. 특히 데이터 과학의 경우 Anaconda 는 매우 인기가 있으며 즉각적인 문제를 해결합니다.
마스트

6

R에서 Python으로 이동해야했기 때문에이 선택을하지 못했습니다.

환경 에 따라 다릅니다. 엔지니어 부서에 임베드하면 작업 기술 그룹이나 Python과 유사한 것이 더 적합합니다.

과학자 , 특히 통계 학자에게 둘러싸여 있으면 R과 함께하십시오.

PS : R은 keras와 tensorflow를 제공하지만 파이썬의 후드에서 구현됩니다. 오직 고급 기능 만 있으면 파이썬이 필요합니다. 파이썬에 점점 더 익숙해지고 있지만 R 의 synthax 가 더 쉽습니다 . 그리고 각 패키지에는 고유 한 패키지가 있지만 파이썬은 그렇지 않지만 일관성이 있습니다. ggplot은 매우 강력합니다. 파이썬에는 클론 (플론 틴)이 있지만 몇 가지 (중요한) 기능이 없습니다. 원칙적으로 R에서 거의 많은 작업을 수행 할 수 있지만 특히 시각화 및 데이터 정렬은 R에서 훨씬 쉽습니다. 따라서 가장 유명한 Python 라이브러리 인 팬더 는 R 의 복제본 입니다.

PSS : 고급 통계는 확실히 R을 목표로합니다. Python은 데이터 과학자를 위해 많은 일상적인 도구와 방법을 제공하지만 R이 제공하는 13,000 개 이상의 패키지에는 도달하지 않습니다 . 예를 들어, 역 회귀를 수행해야했고 파이썬은 이것을 제공하지 않습니다. R에서는 몇 가지 신뢰도 테스트와 선형 또는 비선형 테스트 중에서 선택할 수 있습니다. 같은 모델이 혼합 모델에 적용됩니다. 파이썬으로 구현되었지만 너무 기본적이어서 누군가에게 이것이 어떻게 충분할 수 있는지 알 수 없습니다.


4

나는 그렇다고 말할 것입니다. 파이썬은 대부분의 작업에서 R보다 낫지 만 R에는 틈새가 있으며 많은 상황에서 여전히 사용하고 싶습니다.

또한 외국어를 배우면 프로그래밍 기술이 향상됩니다.

R 대 Python의 강점에 대한 내 자신의 관점은 테이블이나 차트가 포함 된 소규모의 단일 목적 프로그램이나 같은 맥락에서 탐구 작업을 위해 R을 선호한다는 것입니다. 다른 모든 것에는 파이썬을 선호합니다.

  • R은 테이블 매싱에 정말 좋습니다. 특정 프로그램이 수행하는 대부분의 작업이 일부 테이블을 다른 모양으로 스무시하는 경우 R이 선택됩니다. 파이썬에는이를위한 도구가 있지만 R은이를 위해 설계되었으며 더 잘 수행합니다.
  • ggplot2 는 API 유용성의 걸작이며 matplotlib 는 크롤링 공포 이기 때문에 차트를 만들어야 할 때마다 R로 전환하는 것이 좋습니다 .
  • 파이썬은 범용 프로그래밍을 위해 잘 설계되었습니다. 잘 설계된 표준 데이터 구조, 표준 라이브러리 및 제어 흐름 설명을 가지고 있습니다.
  • R은 범용 프로그래밍에 적합하지 않습니다. 트리 구조 또는 그래프 구조 데이터를 잘 처리하지 못합니다. 여기에는 즉시 편리한 몇 가지 규칙 (부모 범위를보고 수정하는 것과 같은)이 있지만 사용하면 성장, 수정 또는 작성하기 어려운 프로그램으로 이어집니다.
  • 또한 R에는 그 자체로 나쁜 것들이 있습니다. 이것들은 주로 세 가지 다른 객체 시스템과 같은 역사적 남은 것입니다.

마지막 요점을 자세히 설명하기 위해 : 컴퓨터 프로그래밍을 잘 수행하면 자신 만의 브릭 (기능 및 모듈)을 만들 수 있습니다.

프로그램은 일반적으로 원래 디자인을 지나서 수정되고 용도가 변경됩니다. 부품을 만들 때 재사용 할 부품을 생각하고 다른 벽돌에 꽂을 수있는 일반적인 방식으로 부품을 제작하는 것이 유용합니다.

R은 모든 벽돌을 함께 녹이도록 권장합니다.


1

다른 사람들이 말했듯이, 그것은 "스위치"가 아닙니다. 그러나 파이썬을 무기고에 추가 할 가치가 있습니까? 나는 확실히 말할 것입니다. 데이터 과학에서 파이썬은 대중적이며 인기가 높아지고 R은 다소 멀어집니다. 그리고 머신 러닝과 신경 네트워크 분야에서 파이썬이 현재 주요 언어라고 말하고 싶습니다. R이 실제로 사용 측면에서 여기에 가깝다고 생각하지 않습니다. 이 모든 이유는 일반성입니다. 파이썬은 일반적인 프로그래밍 언어로 만들어졌으며 모든 종류의 작업을 쉽게 스크립팅 할 수 있습니다. 깔끔하게 구성된 통계 세계에 머무르면 R은 훌륭하지만 AI를 사용하면 종종 참신하고 기타 여러 가지 일을해야하며 R이 파이썬을 능가 할 수 있다고 생각하지 않습니다. 이 때문에


0

이것은 전적으로 개인적인 견해입니다.

사무실 (건설 현장)에서 "모든 작업에 적합한 도구가 있습니다."를 읽었습니다.

프로그래머로서 다양한 작업에 직면 할 것으로 기대합니다. 가능한 한 "구매 또는 투자"할 수있는 도구를 많이 원합니다. 언젠가 하나의 도구가 다른 문제를 해결하는 데 도움이 될 것입니다. R (통계 용)과 Python (일반적으로)은 분명히 나와 함께 원하는 두 가지 도구이며 투자 가치가 있다고 생각합니다.

스위치에 관한 한, 내가 아는 가장 효율적인 도구를 사용합니다 (클라이언트의 요구 사항, 시간 및 비용 투자 및 코딩 용이성에 의해 효율성이 측정되는 경우). 내가 아는 도구가 많을수록 메리 어! 물론 실질적인 한계가 있습니다.

이 모든 것이 제 개인적인 의견이며 반드시 정확하지는 않습니다.


0

R을 사용하여 데이터 과학에 1 년을 투자하고 R 환경에 포함 된 것처럼 보이지만 데이터 과학에 대한 파이썬을 탐색하고 싶어합니다.

먼저리스트와 튜플의 작동 방식과 클래스와 객체의 작동 방식과 같은 파이썬의 기본 사항을 배웁니다.

그런 다음 numpy matplotlib pandas와 같은 라이브러리로 손을 더럽게하십시오. tensorflow 또는 keras를 배우고 데이터 과학을 찾으십시오.


-1

토끼 두 마리를 쫓는 사람도

그리고 네, 파이썬이 더 유명합니다. 나는 둘 다에서 일하지만 비즈니스 말하기는 R보다 Python에서 일자리를 찾는 것이 쉽습니다.

따라서 다음을 수행 할 수 있습니다.

  • 파이썬이 더 인기가 있기 때문에 선택하십시오. 그러나 처음부터 시작해야합니다.

또는

  • R을 유지하십시오. 결국 R과 1 년의 교육을 받았지만 인기는 없습니다.

추가 프로그래밍 언어를 배우면 어쨌든 더 나빠질 것이라는 제안은 말도 안됩니다. 추가 프로그래밍 언어, 특히 익숙하지 않은 프로그래밍 언어를 학습하면 항상 모든 언어의 프로그래머로서의 기술을 향상시킬 수 있습니다.
윌 다 실바
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.