현재 위치 - 회사기업대전 - 정보화 관리 자문 - 데이터 과학 소개: 파이썬 또는 r

데이터 과학 소개: 파이썬 또는 r

데이터 과학 소개: 파이썬 또는 r

데이터 과학을 배우려는 초보자에게 파이썬 또는 R 언어를 선택하는 것은 어려운 일이다. 이 글은 두 언어를 비교해서 당신이 선택을 하는 데 도움이 되기를 바랍니다.

저는 덕근의 데이터 과학자 주관입니다. 본인은 파이썬과 R 언어를 여러 해 동안 사용해 파이썬 커뮤니티와 긴밀하게 협력했습니다 15 년. 이 문장 은 내가 개인적으로 이 두 언어에 대한 견해이다.

세 번째 선택

이 문제를 해결하기 위해 Studio 의 수석 데이터 과학자 Htley Wickham 은 두 가지 언어 중 하나를 선택하는 것이 아니라 두 가지 언어를 함께 사용하는 것이 더 낫다고 생각합니다. 그래서, 이것도 내가 언급한 세 번째 선택이다. 나는 본문의 마지막 부분에서 토론할 것이다.

R 과 파이썬 비교 방법

이 두 언어에 대해 다음 사항을 비교할 가치가 있습니다.

역사:

R 과 Python 의 발전 역사는 현저히 다르고 겹치는 부분이 있다.

사용자 그룹:

여기에는 많은 복잡한 사회학과 인류학 요소가 포함되어 있다.

성능:

상세히 비교하고 왜 비교하기가 어려운지.

타사 지원:

모듈, 코드 라이브러리, 시각화, 저장소, 조직 및 개발 환경.

활용 사례:

구체적인 임무와 직종에 따라 다른 선택이 있다.

동시에 사용할 수 있습니까?

파이썬은 r, r 은 파이썬을 사용한다.

예측:

내부 테스트.

회사 및 개인 선호:

최종 답안을 공개하다.

역사

간략 역사:

ABC 언어->; 파이썬의 출현 (1989 년 창립된)-> 파이썬 2 (2000 년)->; 파이썬 3 (2008 년)

포탄어->; S 언어 (벨 연구소)->; R 언어가 나오다 (199 1 년 로스이하카와 로버트 신사 창립)->; R 1.0.0(2000 년) -> R 3.0.2(20 13)

사용자 그룹

파이썬과 R 의 사용자를 비교할 때 다음 사항에 유의해야 합니다.

파이썬 사용자의 50% 만이 r 을 동시에 사용합니다.

R 언어를 사용하는 프로그래머가 R 을 사용하여 관련 "과학 및 숫자" 연구를 수행한다고 가정합니다. 프로그래머 수준에 관계없이 이 통계 분포가 사실인지 확인할 수 있습니다.

두 번째 질문으로 돌아가면 어떤 사용자 집단이 있는지 알 수 있습니다. 전체 과학 및 디지털 커뮤니티에는 여러 하위 그룹이 포함되어 있으며 그 중 일부는 서로 겹칩니다.

파이썬 또는 r 언어의 하위 그룹 사용:

심도 있는 학습

기계학습

고급 분석

예측 분석

통계

탐사 및 데이터 분석

학술 연구

대량의 컴퓨팅 연구 분야

거의 모든 분야가 특정 집단에 서비스를 제공하지만 R 언어는 통계 및 탐색 분야에서 더 흔합니다. 얼마 전 데이터를 탐구할 때 R 언어는 Python 보다 시간이 적게 걸렸고, Python 을 설치하는 데도 시간이 걸렸다.

이 모든 것은 Jupyter 노트북과 Anaconda 라는 파괴적인 기술로 바뀌었다.

Jupyter 노트북: 브라우저에서 파이썬 및 r 코드를 작성하는 기능이 추가되었습니다.

Anaconda: Python 과 R 은 설치와 관리가 용이합니다.

이제 친숙한 환경에서 Python 또는 R 을 가동하고 실행하여 즉시 보고 및 분석을 제공할 수 있습니다. 이 두 가지 기술은 임무를 완수하는 것과 자신이 좋아하는 언어를 선택하는 것 사이의 장애를 없앴다. Python 은 이제 플랫폼 독립적인 방식으로 패키지화할 수 있으며 빠르고 간단한 분석을 제공합니다.

커뮤니티 언어 선택에 영향을 미치는 또 다른 요소는' 오픈 소스' 입니다. 오픈 소스 라이브러리뿐만 아니라 협업 커뮤니티가 오픈 소스에 미치는 영향도 있습니다. 아이러니하게도, Tensorflow, GNU Scientific Library 등의 오픈 소스 소프트웨어 (각각 Apache 와 GPL) 는 파이썬과 R 을 바인딩합니다. R 언어를 사용하는 사용자가 많지만 파이썬을 사용하는 사용자 중에는 순수 파이썬 지지자도 많습니다. 한편, 더 많은 기업들이 R 언어, 특히 통계적 배경을 가진 기업을 사용한다.

마지막으로, Github 는 커뮤니티와 협업에 대해 Python 을 더 지원합니다. 최근 유행하는 파이썬 가방을 보면, Tensorflow 와 같은 종목에는 35,000 명이 넘는 사용자 집합이 있다는 것을 알 수 있다. 하지만 R 의 인기 패키지를 보면 Shiny 와 Stan 의 소장품은 모두 2000 도 안 된다.

공연

이 방면은 비교하기가 쉽지 않다.

그 이유는 시험할 지표와 상황이 너무 많기 때문이다. 특정 하드웨어에서 테스트하기가 어렵습니다. 일부 작업은 한 언어에서는 최적화되고 다른 언어에서는 최적화되지 않습니다.

퍼지다

그 전에, 파이썬과 R 이 어떻게 비교되는지 생각해 봅시다. R 언어로 많은 사이클을 쓰고 싶으신가요? 결국 이 두 언어의 설계 의도는 다르다.

{

세포: [

{

"cell_type": "code",

"execution_count": 1,

메타데이터: {},

출력: [],

출처: [

Numpy 를 npn 으로 가져오기,

"%load_ext rpy2.ipython"

] 을 참조하십시오

},

{

"cell_type": "code",

Execution _ count: 2,

메타데이터: {},

출력: [],

출처: [

"def do_loop(u 1):n",

"n",

"# initialize' usq' n",

"usq = {}n",

"n",

범위 내 I 의 경우 (100): n ",

U1'의 I 번째 요소의 제곱에서' usq' n 의' I' 위치까지,

"usq [I] = u1[I] * u1[I] n"

] 을 참조하십시오

},

{

"cell_type": "code",

Execution _ count: 3,

메타데이터: {},

출력: [],

출처: [

%%Rn' ,

"do _ loop & lt-function (u1) {n",

"n",

"# initialize' usq' n",

"usq<- 0n",

"n",

"for(i in 1: 100) {n",

U1'의 I 번째 요소의 제곱에서' usq' n 의' I' 위치까지,

"usq [I] < -u 1[i]*u 1[i]n ",

"}n",

"n",

"}"

] 을 참조하십시오

},

{

"cell_type": "code",

Execution _ count: 4,

메타데이터: {},

출력: [

{

"이름": "stdout",

"출력 유형": "흐름",

텍스트: [

"1.58 ms 42.8? 사이클당 s (평균 표준 편차). 데이브. 7 회 실행, 1000 사이클 당) n "

] 을 참조하십시오

}

],

출처: [

"%timeit -n 1000n" ,

%%Rn' ,

"u1< -rnorm( 100)n ",

"do_loop(u 1)"

] 을 참조하십시오

},

{

"cell_type": "code",

Execution _ count: 5,

메타데이터: {},

출력: [

{

"이름": "stdout",

"출력 유형": "흐름",

텍스트: [

"36.9? S 5.99? 사이클당 s (평균 표준 편차). 데이브. 7 회 실행, 1000 사이클 당) n "

] 을 참조하십시오

}

],

출처: [

"%timeit -n 1000n" ,

"u1= np.random.randn (100) n" ,

"do_loop(u 1)"

] 을 참조하십시오

}

],

메타데이터: {

"커널 사양": {

"display _ name": "파이썬 3",

언어: 파이썬,

[이름]: "파이썬 3"

},

언어 정보: {

"codemirror_mode": {

이름':' 파이썬' ,

[버전]: 3

},

"파일 확장자": ". "py" 입니다.

"mime type": "text/x-python",

[이름]: "파이썬",

"nbconvert _ exporter": "파이썬",

"pygments_lexer": "ipython3",

버전: 3.6.3

}

},

[nb 형식]: 4,

"nbformat_minor": 2

}

파이썬은 0.000037 초, r 은 0.00 158 초입니다.

로드 시간 및 명령줄 실행 포함: r 은 0.238 초, 파이썬은 0. 147 초. 이것이 과학적이고 엄격한 테스트가 아니라는 것을 강조하십시오.

테스트는 파이썬의 실행 속도가 현저히 빨라졌다는 것을 증명했다. 보통 큰 영향은 없을 것이다.

운행 속도 외에 데이터 과학자에게 어떤 성능이 더 중요합니까? 두 언어는 명령 언어로 사용할 수 있기 때문에 매우 인기가 있습니다. 예를 들어, Python 을 사용할 때, 우리는 대부분의 시간을 판다에 매우 의존한다. 여기에는 각 언어의 모듈과 라이브러리, 그리고 어떻게 실행되는지 등이 포함됩니다.

타사 지원

파이썬은 파이피가 있고, CRAN 언어는 크랭이 있고, 둘 다 Anaconda 가 있다.

CRAN 은 내장 install.packages 명령을 사용합니다. 현재 CRAN 에는 약 12000 개의 패키지가 있습니다. 데이터 과학에서는 1/2 이상의 패키지를 사용할 수 있습니다.

PyPi 의 패키지 수는 전자의 10 배, 약 145438+00000 개 패키지입니다. 3700 명이 과학공학에 힘쓰고 있다. 어떤 것은 과학적으로도 사용할 수 있지만, 단지 라벨을 붙이지 않았다.

둘 다 중복이 있다. "임의 숲" 을 검색할 때 PyPi 에서 170 개의 항목을 얻을 수 있지만 이러한 패키지는 동일하지 않습니다.

파이썬의 패키지 수는 R 의 10 배이지만 데이터 과학 관련 패키지 수는 거의 같습니다.

운행 속도

데이터 상자와 판다를 가져가는 것이 더 의미가 있다.

복잡한 탐사 임무의 실행 시간을 비교하는 실험을 실시한 결과, 결과는 다음과 같습니다.

파이썬은 대부분의 작업에서 더 빠르게 실행됩니다.

Http://nbviewer.jupyter.org/gist/brianray/4ce15234e6ac2975b335c 8d90a4b6882

보다시피 Python+Pandas 는 기본 r 언어 데이터 프레임보다 빠릅니다. 이것이 파이썬이 더 빨리 실행된다는 것을 의미하지는 않습니다. Pandas 는 Numpy 를 기반으로 c 언어로 작성되었습니다.

형상화

여기서는 ggplot2 와 matplotlib 를 비교합니다.

Matplotlib 는 John D. Hunter 가 작성했습니다. 그는 내가 파이썬 커뮤니티에서 가장 존경하는 사람 중 한 명이자 파이썬 사용 방법을 가르쳐 준 사람이다.

Matplotlib 는 배우기 어렵지만 사용자 정의 및 확장이 가능합니다. Ggplot 은 커스터마이징하기 어렵고, 어떤 사람들은 배우기가 더 어렵다고 생각한다.

아름다운 차트를 좋아하고 사용자 정의할 필요가 없다면 R 은 좋은 선택입니다. 만약 당신이 더 많은 일을 하고 싶다면, Matplotlib 는 심지어 인터랙티브 렌즈도 괜찮다. 마찬가지로 R 의 ShinnyR 는 상호 작용을 증가시킬 수 있습니다.

동시에 사용할 수 있나요?

왜 파이썬과 R 언어를 동시에 사용할 수 없는지 궁금하실 겁니다.

다음과 같은 경우 두 언어를 동시에 사용할 수 있습니다.

회사 또는 조직 허가

둘 다 프로그래밍 환경에서 쉽게 설정하고 유지 관리할 수 있습니다.

여러분의 코드는 다른 시스템에 들어갈 필요가 없습니다.

협력하는 사람에게 번거로움과 폐를 끼치지 않을 것이다.

두 언어를 함께 사용하는 방법은 다음과 같습니다.

파이썬이 r 에 제공하는 패키지: rpy2, pyRserve, Python 등.

R 에는 r 파이썬, 파이썬 INR, rethink, rPython, SnakeCharmR, xr 파이썬 상대 패키지도 있습니다.

Jupyter 를 사용 하 여, 둘 다 동시에 사용 합니다. 예를 들면 다음과 같습니다.

나중에 판다의 데이터 프레임을 전송한 다음 rpy2 를 통해 r 의 데이터 프레임으로 자동 변환하고 "-i df" 를 사용하여 변환할 수 있습니다.

Http://nbviewer.jupyter.org/gist/brianray/734bd54f468d9a6db917/kloc-0

예측

Kaggle 에 R 이나 Python 으로 개발자를 위한 커널을 쓴 사람이 있다. 그는 데이터를 바탕으로 다음과 같은 흥미로운 결과를 발견했습니다.

내년에 리눅스를 바꿀 계획이라면, 파이썬 사용자일 가능성이 더 높습니다.

만약 당신이 통계를 배우고 있다면, r 을 사용할 가능성이 더 큽니다. 만약 당신이 컴퓨터 과학을 공부한다면, 당신은 Python 을 사용할 가능성이 더 큽니다. 。

아직 젊다면 (18-24 세), Python 사용자일 가능성이 더 높습니다.

만약 당신이 프로그래밍 대회에 참가한다면, 당신은 파이썬 사용자일 가능성이 더 높습니다.

만약 당신이 내년에 안드로이드를 사용하고 싶다면, 당신은 파이썬 사용자일 가능성이 더 높습니다.

내년에 SQL 을 배우고 싶다면 R 사용자가 될 가능성이 더 큽니다.

MS office 를 사용한다면, R 사용자일 가능성이 더 높습니다.

만약 내년에 Rasperry Pi 를 이용하고 싶다면, 당신은 파이썬 사용자일 가능성이 더 높다.

만약 당신이 전일제 학생이라면, 당신은 파이썬 사용자일 가능성이 더 높습니다.

애자일 방법론을 사용한다면, 파이썬 사용자가 될 가능성이 더 높습니다.

인공지능에 대한 우려가 흥분보다 더 많다면, R 사용자가 될 가능성이 더 높다.

회사 및 개인 선호

내가 구글과 Stack Overflow 의 Alex Martelli 와 교류할 때, 그는 왜 구글이 처음에는 소수의 언어만 공식적으로 지원했는지 설명해 주었다. 구글과 같은 상대적으로 발달한 환경에도 몇 가지 제한과 선호도가 있으며, 다른 기업들도 마찬가지다.

기업 선호도 외에도 기업 중 처음으로 언어를 사용하는 사람도 결정적인 역할을 한다. 덕근은 R 을 처음 사용했고, 현재 회사에서 일하고 있으며, 현재 수석데이터 과학자이다. 제 제안은 자신이 좋아하는 언어를 선택하고, 자신이 선택한 언어를 사랑하고, 앞장서고, 자신의 직업을 사랑하는 것입니다.

네가 중요한 것을 연구하고 있을 때, 실수는 불가피하다. 그러나 잘 설계된 모든 데이터 과학 프로젝트는 데이터 과학자들에게 실험과 학습을 위한 공간을 남겨 줄 것이다. 열린 마음을 유지하고 다양성을 포용하는 것이 중요하다.

마지막으로 개인은 주로 Python 을 사용하고 R 에 대해 더 많이 알기를 기대합니다.

copyright 2024회사기업대전