통계 워크 벤치로서의 파이썬


355

많은 사람들이 통계 요구에 Excel 또는 다른 스프레드 시트, SPSS, Stata 또는 R과 같은 기본 도구를 사용합니다. 매우 특별한 요구를 위해 특정 패키지로 전환 할 수 있지만 간단한 스프레드 시트 또는 일반 통계 패키지 또는 통계 프로그래밍 환경을 사용하여 많은 작업을 수행 할 수 있습니다.

저는 항상 파이썬을 프로그래밍 언어로 좋아했으며 간단한 요구에 따라 필요한 것을 계산하는 간단한 프로그램을 작성하기 쉽습니다. Matplotlib을 사용하여 플롯 할 수 있습니다.

누구든지 R과 같이 완전히 파이썬으로 전환 했습니까? R (또는 기타 통계 패키지)에는 통계와 관련된 많은 기능이 있으며, 수행하려는 통계에 대해 생각하고 데이터의 내부 표현에 대해서는 덜 생각할 수있는 데이터 구조가 있습니다. 파이썬 (또는 다른 동적 언어)은 친숙한 고급 언어로 프로그래밍 할 수 있다는 이점이 있으며 데이터가 있거나 측정을 수행 할 수있는 실제 시스템과 프로그래밍 방식으로 상호 작용할 수 있습니다. 그러나 간단한 통계 통계에서부터 복잡한 다변량 방법에 이르기까지 "통계 용어"를 사용하여 표현할 수있는 파이썬 패키지를 찾지 못했습니다.

R을 사용하여 R, SPSS 등을 대체하기 위해 "통계 워크 벤치"로 Python을 사용하려는 경우 무엇을 추천 할 수 있습니까?

당신의 경험에 따라 무엇을 얻고 잃을 것입니까?


5
참고로, 새로운 python stats
subreddit가

커맨드 라인에서 물건을 움직여야 할 때 pythonpy ( github.com/Russell91/pythonpy )는 좋은 도구입니다.
RussellStewart

답변:


307

R / CRAN에서 사용할 수있는 다양한 통계 패키지를 무시하기는 어렵습니다. 즉, 나는 파이썬 땅에서 많은 시간을 보내고 결코 나만큼 재미있게 사람을 설득하지 않을 것입니다. :) 통계 작업에 유용한 라이브러리 / 링크는 다음과 같습니다.

  • NumPy / Scipy 아마도 이것에 대해 이미 알고있을 것입니다. 그러나 이미 사용할 수있는 많은 통계 기능과 함수 (데이터 조작 및 기타 작업 포함)에 대한 훌륭한 참조 자료 인 예제 목록 에 대해 읽을 수 있는 Cookbook을 설명 하겠습니다 . 또 다른 편리한 참고 자료는 Scipy 의 John Cook의 배포판입니다 .

  • 팬더 이것은 통계 데이터 (표 형식 데이터, 시계열, 패널 데이터)로 작업하기에 정말 유용한 라이브러리입니다. 데이터 요약, 그룹화 / 집계, 피벗을위한 많은 내장 기능을 포함합니다. 통계 / 경제학 라이브러리도 있습니다.

  • larry NumPy와 잘 어울리는 레이블이 붙은 배열. NumPy에없는 통계 함수를 제공하고 데이터 조작에 적합합니다.

  • python-statlib 수많은 통계 라이브러리를 결합한 상당히 최근의 노력. NumPy 또는 팬더를 사용하지 않는 경우 기본 및 설명 통계에 유용합니다.

  • statsmodels 선형 모델, GLMS, 다른 사람의 사이에서 : 통계 모델링.

  • scikits 통계 및 과학 컴퓨팅 패키지-특히 스무딩, 최적화 및 기계 학습.

  • PyMC 베이지안 / MCMC / 계층 적 모델링 요구에 적합합니다. 추천.

  • PyMix 혼합물 모델.

  • Biopython 생물학적 데이터를 파이썬에로드하는 데 유용하며 분석을위한 기초 통계 / 머신 학습 도구를 제공합니다.

속도가 문제가된다면 딥 러닝 사람들이 성공적으로 사용한 Theano를 고려 하십시오 .

거기에 다른 많은 것들이 있지만 이것이 내가 언급 한 선을 따라 가장 유용하다는 것을 알았습니다.


16
모든 답변은 도움이되고 유용했으며 모두 받아 들여질만한 가치가있었습니다. 그러나 이것은 질문에 대답하는 데 매우 효과적입니다. 파이썬에서는 원하는 것을하기 위해 많은 조각을 모아야합니다. 이 포인터는 의심 할 여지없이 통계 / 모델링 등을 수행하려는 사람에게 매우 유용합니다. 파이썬으로. 모두에게 감사 드려요!
Fabian Fagerholm

1
@ars Windows에서 Python을 사용하는 가장 좋은 방법이 무엇인지 알고 있습니까?
Stéphane Laurent

1
@ StéphaneLaurent 나는 일반적으로 다양한 조각을 직접 설치하지만 빠른 시작 / 설치를 위해 다음을 고려할 수 있습니다 : pythonxy .
ars

이 스크립트는 위에서 인용 한 많은 라이브러리를 설치합니다 : fonnesbeck.github.com/ScipySuperpack
Fr.

Pythonxy는 훌륭하지만 32 비트에서만 사용할 수 있기 때문에 큰 계산을 원한다면 성 가실 수 있습니다. 다음은 많은 파이썬 패키지를 설치하기위한 비공식 바이너리입니다. 창문 아래에서 작업하기로 결정하면 매우 유용 할 수 있습니다. lfd.uci.edu/~gohlke/pythonlibs @ StéphaneLaurent
JEquihua

140

숫자 플랫폼이자 MATLAB을 대체하는 파이썬으로, 적어도 2-3 년 전에 파이썬은 성숙에 도달했으며, 이제 여러 측면에서 MATLAB보다 훨씬 뛰어납니다. 그 당시 R에서 Python으로 전환하려고 시도했지만 비참하게 실패했습니다. 매일 파이썬과 동등한 R 패키지가 너무 많습니다. ggplot2가 없으면 showtopper가 되기에는 충분하지만 더 많은 것이 있습니다. 이 외에도 R에는 데이터 분석을위한 더 나은 구문이 있습니다. 다음 기본 예를 고려하십시오.

파이썬 :

results = sm.OLS(y, X).fit()

R :

results <- lm(y ~ x1 + x2 + x3, data=A)

좀 더 표현력이 있다고 생각하십니까? R에서는 변수 측면에서 생각하고 모델을 쉽게 확장 할 수 있습니다.

lm(y ~ x1 + x2 + x3 + x2:x3, data=A)

R과 비교하여 Python은 모델 작성을위한 저수준 언어입니다.

고급 통계 함수에 대한 요구 사항이 적고 더 큰 프로젝트에서 이미 Python을 코딩하는 경우 Python을 좋은 후보로 생각합니다. 속도 제한 때문에 또는 R 패키지가 우위를 제공하지 않기 때문에 베어 본 접근 방식이 필요할 때도 고려할 것입니다.

현재 비교적 진보 된 통계를하는 사람들에게는 대답이 대단하지 않으며 그렇지 않습니다 . 사실, 파이썬은 데이터 분석에 대한 생각 방식을 제한 할 것이라고 생각합니다. 100 개의 필수 R 패키지에 대한 모듈 대체품을 생산하는 데 몇 년과 수년의 노력이 필요하며, 그럼에도 불구하고 파이썬은 데이터 분석 기능이 강화 된 언어처럼 느껴질 것입니다. R은 이미 여러 분야에서 통계학 자의 가장 큰 비중을 차지 했으므로 조만간 이런 일이 일어나지 않을 것입니다. 그 말은 자유 국가이며 APL과 C에서 통계를 수행하는 사람들을 알고 있습니다.


9
+1 수식 등을 사용하여 데이터를 처리하는 통계 언어로 R을 강조했기 때문에이 응답이 마음에 듭니다. 즉, 파이썬 커뮤니티에서 팬더 (statsmodels와 결합)의 긍정적 인 영향을 기대하고 있습니다.
chl

28
파이썬 커뮤니티에서 patsy는 "formula"의 필요성을 해결하고 있으며, R이 제공하는 기능을 개선 할 때도 있습니다 . patsy.readthedocs.org/en/v0.1.0/index.html 파이썬에서 좋은 점은 측면은 직교로 처리됩니다. 팬더는 시계열 및 데이터 프레임 / 시리즈 표현을 처리합니다. 공식에 대한 patsy. 배열 표현 및 벡터화를위한 numpy statsmodels는 통계 알고리즘을 래핑합니다. 최적화와 다른 것들에 대한 scipy. 더 깨끗한 인터페이스입니다. R은 더 성숙하지만 헤어볼입니다. ../ ..
blais

3
../ .. 장기적으로 힘이 점점 더 많은 파이썬 통합의 방향으로 나아가고 R과의 경쟁자가 될 것입니다. R의 데이터 정리는 Python과 비교할 때 PIA와 같습니다. 결코 사소한 일이 아닙니다. – blais
chl

9
업데이트로 : statsmodels 문서의 첫 번째 예는 이제 results = smf.ols('Lottery ~ Literacy + np.log(Pop1831)', data=dat).fit()입니다. Statsmodels는 범위와 관련하여 R과 같은 다른 통계 패키지보다 여전히 먼저 있지만 다른 언어 또는 통계 패키지를 가져 오기 전에 파이썬에서 할 수있는 일이 더 많습니다. (GEE 및 Mixed은 다음 릴리스에 출시 될 예정입니다.)
Josef

4
"파이썬에서 좋은 점은이 모든 측면들이 직교 적으로 처리된다는 것입니다." 나는 여러 가지에 동의하지 않습니다. numpy, scipy, statsmodels 사이에는 상당한 중복이 있습니다. R의 디자인은 훨씬 모듈적이고 경제적입니다. 게다가, 대부분 데이터 지향 언어 (개념뿐만 아니라 데이터 프레임, 그래픽 문법, 메델 문법, 캐터, dplyr의 데이터로 발전하는 문법)에 대한 모든 개념적 혁신은 아닙니다. 파이썬 커뮤니티는 항상 한 발짝 뒤쳐져 있으며 성능에 지나치게 집중되어 있습니다.
gappy

95

먼저 John D Cook의 답변에 동의한다고 가정하겠습니다. Python은 R과 같은 도메인 특정 언어가 아니므로 더 많은 작업을 수행 할 수 있습니다. 물론 R이 DSL이라는 것은 JASA에 게시 된 최신 알고리즘이 거의 확실하게 R에 있음을 의미합니다. 대부분 임시 작업을 수행하고 최신 올가미 회귀 기술을 실험하고 싶다면 R이 이길 수 없습니다. 더 많은 생산 분석 작업을 수행하고 기존 소프트웨어 및 환경과 통합하고 속도, 확장 성 및 유지 관리 가능성에 관심이 있다면 Python이 훨씬 더 나은 서비스를 제공합니다.

둘째, ars는 좋은 링크로 큰 대답을했습니다. 다음은 파이썬에서 분석 작업에 필수적인 것으로 간주되는 몇 가지 패키지입니다.

  • 아름다운 출판 품질 그래픽을위한 matplotlib .
  • 향상된 대화식 Python 콘솔을위한 IPython 중요하게, IPython은 파이썬에서 대화식 병렬 컴퓨팅을위한 강력한 프레임 워크를 제공합니다.
  • Python에서 C 확장을 쉽게 작성하기위한 Cython 이 패키지를 사용하면 계산 집약적 인 Python 코드를 가져 와서 쉽게 C 확장으로 변환 할 수 있습니다. 그런 다음 다른 Python 모듈과 마찬가지로 C 확장을로드 할 수 있지만 코드는 C에 있기 때문에 매우 빠르게 실행됩니다.
  • 철저하게 문서화되고 지원되는 수백 개의 수학 및 통계 알고리즘 모음을위한 PyIMSL Studio . 거의 동일한 API를 사용하여 Python 및 C에서 정확히 동일한 알고리즘을 호출하면 동일한 결과를 얻을 수 있습니다. 전체 공개 : 저는이 제품을 사용하지만 많이 사용합니다.
  • Excel 파일을 쉽게 읽을 수있는 xlrd

더 MATLAB과 같은 대화식 IDE / 콘솔을 원한다면 Spyder 또는 PyDev 플러그인 for Eclipse를 확인하십시오 .


15
R은 일반적인 용어로 DSL이 아닙니다. 완전한 Turing 완전한 프로그래밍 언어입니다.
hadley

4
@hadley : 아마도 "DSL"을 구어체로 사용하고 있지만 DSL의 Wikipedia 페이지에는 S + 및 R이 DSL 및 Python의 범용 언어로 명시 적으로 나열되어 있습니다. en.wikipedia.org/wiki/Domain-specific_language를 참조하십시오 . 같은 맥락에서 SAS는 Turing-complete (IML 매크로 구성 요소가 사용되는 경우에만)이지만 실제 의미에서 완전한 언어라고 부르지는 않습니다. 내 연구에서 R은 귀중한 것으로 나타 났지만 R (또는 그 문제에 대한 Excel)에서 모든 것을하려고 시도하지 않고 가능한 한 범용 언어를 사용하여 코딩하려고합니다.
Josh Hemann

16
위키 백과의 다른 언어와 동일한 목록에 R과 S를 포함시키는 것은 불공평하다고 생각합니다 .R에서 파이썬으로 할 수있는 일은 없습니다. 물론 다른 프로그래밍 언어에 더 적합한 것들이 많이 있지만, 파이썬에서도 마찬가지입니다.
hadley

6
Ahh, hadley는 2011 년 10 월 13 일에 의견을 교환 한 당일 위키 백과 페이지에서 R과 S +를 제거했습니다. 따라서 종종 "R은 통계 전문가에 의해 개발 된 통계"라는 기본 강점을 들었습니다. 명백히, 이제는 범용 언어이기도합니다.
Josh Hemann

5
글쎄, R로 멀티 스레드 코드를 가질 수 있습니까? 네트워크 비동기 I / O? 이 유스 케이스는 실제로 과학 컴퓨팅에서 발생합니다. R은 DSL이라고 생각합니다. 통계는 강력하고 다른 대부분은 좋지 않습니다.
Gael Varoquaux '

61

cranBioconductor 의 통계 패키지 범위가 다른 언어에서 제공하는 것보다 훨씬 뛰어나다는 주장은 없다고 생각 하지만, 이것이 유일한 고려 사항은 아닙니다.

내 연구에서 나는 할 수있을 때 R을 사용하지만 때로는 R이 너무 느립니다. 예를 들어 대규모 MCMC 실행입니다.

최근에는 파이썬과 C를 결합 하여이 문제를 해결했습니다. 간단한 요약 : ~ 60 개의 매개 변수를 가진 큰 확률 론적 모집단 모형을 적합하고 MCMC를 사용하여 약 150 개의 잠재 상태를 유추합니다.

  1. 파이썬에서 데이터 읽기
  2. ctypes를 사용하여 파이썬에서 C 데이터 구조를 구성하십시오 .
  3. 파이썬 for루프를 사용하여 모수를 업데이트하고 가능성을 계산 한 C 함수를 호출하십시오.

빠른 계산 결과, 프로그램은 C 함수에서 95 %를 소비했습니다. 그러나 데이터를 읽거나 C 데이터 구조를 구성하기 위해 고통스러운 C 코드를 작성할 필요가 없었습니다.


파이썬이 R 함수를 호출 할 수있는 rpy 도 있다는 것을 알고 있습니다 . 이것은 유용 할 수 있지만 통계를 "직접"수행하는 경우 R을 사용합니다.


29
Rcpp 용 shameless 플러그 삽입 :)
Dirk Eddelbuettel

PyMC를 사용 해보고 모델의 성능을 비교하는 방법에 대해 궁금합니다.
ars

@ars : 위의 경우, 10 ^ 8 반복의 각 반복은 5 개의 ODE 해결과 관련이 있습니다. 이 작업은 실제로 C에서 수행해야했습니다. 나머지 코드는 상당히 단순하여 C 코드는 간단했습니다. 내 응용 프로그램은 표준이 아니므로 PyMC를 적용 할 수 없었으며 2 년 전이었습니다.
csgillespie


36

위의 답변에서 명시 적으로 언급 된 scikit-learn을 보지 못했습니다 . 파이썬에서 기계 학습을위한 파이썬 패키지입니다. 꽤 어리지만 매우 빠르게 성장하고 있습니다 (면책 조항 : 저는 scikit-learn 개발자입니다). 목표는 속도와 유용성에 중점을 둔 통합 인터페이스에서 표준 기계 학습 알고리즘 도구를 제공하는 것입니다. 내가 아는 한 Matlab에서 비슷한 것을 찾을 수 없습니다. 장점은 다음과 같습니다.

  • 자세한 설명서 와 함께, 많은 예제

  • 고품질 표준 지도 학습 (회귀 / 분류) 도구. 구체적으로 :

  • 여러 CPU를 사용하여 교차 유효성 검사를 통해 모델 선택 을 수행하는 기능

  • 지도 학습 은 데이터를 탐색하거나 1 차 차원 축소를 수행하여지도 학습에 쉽게 연결될 수 있습니다.

  • 오픈 소스, BSD 라이센스. 순수한 학업 환경에 있지 않다면 (저는 국가의 국립 연구소가 될 것입니다) Matlab 비용이 매우 비싸므로 작업에서 제품을 파생시킬 생각입니다.

Matlab은 훌륭한 도구이지만, 내 자신의 작업에서 scipy + scikit-learn은 Matlab에 대해 우위를 점하기 시작했습니다. Python은 뷰 메커니즘으로 인해 메모리에서 더 나은 작업을 수행하기 때문입니다. scikit-learn을 통해 다양한 접근 방식을 매우 쉽게 비교할 수 있습니다.


29

파이썬으로 이전하면 한 가지 언어로 더 많은 작업을 수행 할 수 있다는 이점이 있습니다. 파이썬은 숫자 크 런칭, 웹 사이트 작성, 관리 스크립팅 등에 적합한 선택입니다. 따라서 파이썬에서 통계를 수행하는 경우 다른 프로그래밍 작업을 수행하기 위해 언어를 전환 할 필요가 없습니다.

업데이트 : 2011 년 1 월 26 일 Microsoft Research는 데이터 분석을위한 새로운 Python 기반 환경 인 Sho를 발표했습니다 . 아직 시도해 볼 기회는 없었지만 Python을 실행하고 .NET 라이브러리와 상호 작용하려는 경우 흥미로운 가능성이 있습니다.


4
R에서 많은 수의 크 런칭, 하나의 웹 사이트 및 몇 가지 관리 스크립트를 수행했으며 꽤 잘 작동합니다.

28

아마도이 답변은 부정 행위 일지 모르지만 R과 Python 사이의 인터페이스를 제공하는 rpy 프로젝트를 언급 한 사람은 아무도 없습니다 . 구문, 데이터 처리 및 일부 경우에는 Python 속도를 유지하면서 대부분의 R 기능에 대해 pythonic api를 얻습니다. R이 dsl이고 통계 커뮤니티가 다른 언어보다 R에 더 많이 투자되기 때문에 Python이 R만큼 많은 최신 통계 도구를 가질 가능성은 거의 없습니다.

파이썬을 파이썬으로, SQL을 SQL로하면서 SQL의 장점을 활용하기 위해 ORM을 사용하는 것과 유사하다고 생각합니다.

데이터 구조에 특별히 유용한 다른 패키지는 다음과 같습니다.

  • pydataframe은 data.frame을 복제하며 rpy 와 함께 사용할 수 있습니다. R과 유사한 필터링 및 작업을 사용할 수 있습니다.
  • pyTables 아래에있는 빠른 hdf5 데이터 유형을 사용합니다.
  • h5py 또한 hdf5이지만 특히 numpy와의 상호 운용을 목표로합니다.
  • 팬더 데이터와 같은 data.frame을 관리하는 또 다른 프로젝트는 rpy, pyTables 및 numpy와 함께 작동합니다.

1
나는 항상 rpy가 느슨하게 작동한다는 것을 알았습니다. 예를 들어 몇 가지 간단한 기능이있는 큰 코드 줄이 필요합니다.
Néstor

아마도 @CarlSmith가 지적한 IPython의 rmagic 확장 프로그램이 rpy2로 더 쉽게 작업 할 수 있습니까? ipython.org/ipython-doc/dev/config/extensions/rmagic.html을 참조하십시오 .
Jonathan

26

나는 본질적으로 R 상점 인 생물 통계 학자입니다 (~ 80 명의 사람들이 R을 기본 도구로 사용합니다). 아직도, 나는 약 3/4의 시간을 파이썬에서 일하고 있습니다. 나는 이것이 나의 작업이 통계 모델링에 대한 베이지안 및 기계 학습 접근법과 관련되어 있다는 사실에 주로 기인한다. 파이썬은 적어도 반복적이거나 시뮬레이션 기반의 통계적 방법에서는 R보다 성능 / 생산성 스위트 스폿에 훨씬 가깝습니다. 분산 분석, 회귀 분석 및 통계 테스트를 수행하는 경우 주로 R을 사용한다고 확신합니다. 그러나 필요한 대부분은 미리 준비된 R 패키지로 제공되지 않습니다.


5
어떤 통계 영역에서 작업하는지 구별하기 위해 +1. 파이썬에는 많은 기능이 존재하는 통계 컴퓨팅 영역 (예 : 비정형 텍스트 분석 및 컴퓨터 비전)이 있으며, 파이썬은 그 하위 도메인에서 링구아 프랑카로 보입니다. 파이썬 커뮤니티가 따라야 할 곳은 R의 디자인이 잘되는 고전적인 통계 모델링에 대한 데이터 구조와 의미를 개선하는 것입니다. scikits.statsmodels 개발자는 그면에서 많은 진전을 보이고 있습니다 : scikits.appspot.com/statsmodels
Josh Hemann

26

통계 작업을 위해 선형 모델에 크게 의존하고 내 작업의 다른 측면에서 Python을 좋아하는 사람의 입장 에서 파이썬에서 상당히 기본적인 통계 이외의 작업을 수행하는 플랫폼 으로 매우 실망했습니다.

나는 R이 통계 커뮤니티의 지원, 선형 모델의 훨씬 더 나은 구현, Enthought와 같은 훌륭한 배포판에서도 통계 측면에서 솔직하다는 것을 알았습니다. 파이썬은 와일드 웨스트와 약간 비슷합니다.

그리고 혼자 작업하지 않는 한, 통계를 위해 Python을 사용하는 공동 작업자가있을 가능성은 매우 낮습니다.


26

어쨌든 파이썬을 위해 R을 포기할 필요는 없습니다. 풀 스택과 함께 IPython 을 사용하는 경우 R, Octave 및 Cython 확장이 있으므로 IPython 노트북 내에서 해당 언어를 쉽고 깨끗하게 사용할 수 있습니다. 또한 값과 Python 네임 스페이스간에 값을 전달할 수 있습니다. matplotlib을 사용하여 플롯으로, 제대로 렌더링 된 수학 표현식으로 데이터를 출력 할 수 있습니다. 다른 많은 기능이 있으며 브라우저에서이 모든 작업을 수행 할 수 있습니다.

IPython은 먼 길을왔다 :)


19

당신이 찾고있는 것을 Sage라고합니다 : http://www.sagemath.org/

수학을 위해 잘 구축 된 Python 도구 조합에 대한 훌륭한 온라인 인터페이스입니다.


4
Sage의 훌륭한 부분은 기본적으로 수학, 통계, 데이터 분석 을위한 수많은 훌륭한 무료 도구 가 결합되어 있다는 것입니다 . 이는 단순한 Python 이상입니다. R, maxima, GLPK, GSL 등에 액세스 할 수 있습니다.
shabbychef

18

Rpy2-R로 파이썬에서 놀아 라 ...

Gung의 요청에 따른 추가 설명 :

Rpy2 설명서는 http://rpy.sourceforge.net/rpy2/doc-dev/html/introduction.html있습니다.

설명서 에서 rpy2의 고급 인터페이스는 Python 프로그래머가 R을 쉽게 사용할 수 있도록 설계되었습니다. R 객체는 Python 구현 클래스의 인스턴스로 노출되며 R 함수는 여러 경우에 해당 객체에 대한 바인딩 된 메소드입니다. 이 섹션에는 또한 R : 격자 (격자) 도표와 ggplot2로 구현 된 그래픽 문법이 포함 된 그래픽에 대한 소개가 포함되어 있습니다. 기본 그리드 그래픽을 사용하면 가능한 모든 사용자 정의가 간략하게 설명됩니다.

내가 좋아하는 이유 :

python의 유연성을 사용하여 데이터를 처리하고 numpy 또는 pandas를 사용하여 행렬로 바꾸고 R에서 계산을 수행하고 r 객체를 다시 처리하여 포스트 처리를 수행 할 수 있습니다. 나는 계량 경제학을 사용하고 파이썬은 단순히 R의 최첨단 통계 도구를 가지지 않을 것이다. 그리고 R은 파이썬만큼 유연하지 않을 것이다. 이를 위해서는 R을 이해해야합니다. 다행히도 훌륭한 개발자 커뮤니티가 있습니다.

Rpy2 자체는 잘 지원되며이를 지원하는 신사는 SO 포럼을 자주 방문합니다. Windows 설치에 약간의 고통이있을 수 있습니다-https : //.com/questions/5068760/bizzarre-issue-trying-to-make-rpy2-2-1-9-work-with-r-2-12-1-using -python-2-6-un? rq = 1 이 도움이 될 수 있습니다.


1
@pythOnometrist 사이트에 오신 것을 환영합니다. 이것이 유용한 기여라고 생각합니다. Rpy2에 대한 간략한 요약을 제공하여 독자가 원하는 것을 결정할 수 있습니까?
gung

17

통계 분석 및 예측에 Python을 사용합니다. 위의 다른 사람들이 언급했듯이 Numpy와 Matplotlib은 훌륭한 일꾼입니다. 또한 PDF 출력을 생성하기 위해 ReportLab을 사용합니다.

현재 Python을 기반으로하는 Excel과 같은 스프레드 시트 응용 프로그램 인 Resolver와 Pyspread를 모두보고 있습니다. Resolver는 상용 제품이지만 Pyspread 는 여전히 오픈 소스입니다. (죄송합니다, 하나의 링크로 제한됩니다)


1
다시 흥미로운 도구들. Numpy, Matplotlib 및 ReportLab에 대해 알고 있었지만 Pyspread는 흥미로운 아이디어처럼 보입니다. 적어도 스프레드 시트 셀에 Python 표현식을 입력하고 싶습니다. 가능한 모든 문제를 해결하지는 못하지만 데이터를 프로토 타이핑하고 재생하는 데 유용 할 수 있습니다.
Fabian Fagerholm

1
와우 파이썬 스프레드 시트 +1! 아직 들어 본 적이 없습니다. 필자는 OpenOffice / LibreOffice가 스프레드 시트 소프트웨어에서 파이썬 스크립팅을 실제로 수용하고 통합하기를 바랐습니다.
User

15

지금까지 훌륭한 개요. 3 년 동안 대학에서 일한 이래로 파이썬 (특히 scipy + matplotlib)을 matlab 대체품으로 사용하고 있습니다. 특정 라이브러리에 익숙하기 때문에 때로는 여전히 되돌아갑니다. 예를 들어 matlab wavelet 패키지는 순전히 훌륭합니다.

http://enthought.com/ python 배포가 마음에 듭니다 . 그것은 상업적이지만 아직 학문적 목적으로 무료이며 완전히 아는 한 완전히 공개 소스입니다. 내가 많은 학생들과 함께 일하면서 생각을 사용하기 전에 때로는 numpy, scipy, ipython 등을 설치하는 것이 번거로 웠습니다. Enthought는 Windows, Linux 및 Mac 용 설치 프로그램을 제공합니다.

언급 할만한 두 가지 패키지 :

  1. ipython (이미 열광적 인 상태로 제공됨) 훌륭한 고급 셸. 좋은 소개는 showmedo http://showmedo.com/videotutorials/series?name=PythonIPythonSeries 에 있습니다 .

  2. nltk-자연어 툴킷 http://www.nltk.org/ 코퍼스에 대한 통계 / 기계 학습을 원할 경우 훌륭한 패키지.



10

아마도 직접적으로 관련이 없지만 R에는 대화 형 세션을위한 멋진 GUI 환경이 있습니다 (Mac : Windows에서 편집). IPython은 매우 좋지만 Matlab에 가까운 환경에서는 Spyder 또는 IEP를 시도 할 수 있습니다. 나는 늦게 IEP를 사용하는 것이 더 좋았지 만 Spyder는 더 유망한 것으로 보입니다.

IEP : http://code.google.com/p/iep/

스파이더 : http://packages.python.org/spyder/

IEP 사이트에는 관련 소프트웨어에 대한 간단한 비교가 포함되어 있습니다 : http://code.google.com/p/iep/wiki/Alternatives


9

나는 체크 아웃을 제안하는 팬더에 대한 훌륭한 소개를 발견했습니다. Pandas는 놀라운 툴 세트이며 광범위한 라이브러리와 Python의 프로덕션 품질을 통해 R의 고급 데이터 분석 기능을 제공합니다.

이 블로그 게시물은 전체 초보자의 관점에서 Pandas에 대한 훌륭한 소개를 제공합니다.

http://manishamde.github.com/blog/2013/03/07/pandas-and-python-top-10/


3
독자가 미리 보는 것이 자신에게 적합한 지 판단 할 수 있도록 어떤 특성이 "위대한"요소인지에 대해 몇 마디 말씀해 주시겠습니까?
whuber

1
죄송합니다. 방금 원래 게시물에 잘못된 링크를 첨부했습니다.
padawan

8

IronPython을 기반으로 구축 된 수치 컴퓨팅 환경 인 Sho를위한 소리를 추가해야합니다. 지금 스탠포드 머신 러닝 수업에 사용하고 있으며 정말 도움이되었습니다. 선형 대수 패키지 및 차트 기능이 내장되어 있습니다. .Net이기 때문에 C # 또는 다른 .Net 언어로 쉽게 확장 할 수 있습니다. 나는 파이썬과 NumPy보다 Windows 사용자가 시작하는 것이 훨씬 쉽다는 것을 알았습니다.


8

아무도 전에 오렌지에 대해 언급하지 않았습니다 .

비주얼 프로그래밍 또는 Python 스크립팅을 통한 데이터 마이닝. 기계 학습을위한 구성 요소. 생물 정보학 및 텍스트 마이닝을위한 애드온. 데이터 분석 기능이 포함되어 있습니다.

나는 매일 사용하지 않지만 명령 줄 인터페이스보다 GUI를 선호하는 사람에게는 반드시 참조해야합니다.

후자를 선호하더라도 Orange는 익숙한 것이 좋습니다. 일부 기능이 필요할 경우 Orange 스크립트를 Python 스크립트로 쉽게 가져올 수 있기 때문입니다.


7

SPSS Statistics에는 통합 Python 인터페이스 (또는 R)가 있습니다. 따라서 통계 프로 시저를 사용하고 일반적인 형식의 통계 출력을 생성하거나 추가 처리를 위해 프로그램에 결과를 리턴하는 Python 프로그램을 작성할 수 있습니다. 또는 통계 명령 스트림에서 Python 프로그램을 실행할 수 있습니다. 여전히 통계 명령 언어를 알아야하지만 통계가 제공하는 모든 데이터 관리, 프리젠 테이션 출력 등 및 절차를 활용할 수 있습니다.


7

DataCamp와의 최근 비교는 R과 Python에 대한 명확한 그림을 제공합니다.

데이터 분석 필드에서이 두 언어의 사용법. Python은 데이터 분석 작업을 웹 앱과 통합해야하거나 통계 코드를 프로덕션 데이터베이스에 통합해야하는 경우에 일반적으로 사용됩니다. R은 데이터 분석 작업에 독립형 컴퓨팅 또는 개별 서버에서 분석이 필요한 경우 주로 사용됩니다.

블로그 에서이 기능이 매우 유용하다는 것을 알게 되었고 다른 언어도이 두 언어의 최신 트렌드를 이해하는 데 도움 이 되기를 바랍니다. 줄리아도이 지역에오고 있습니다. 도움이 되었기를 바랍니다 !


6

나는 내 분야에서 파이썬이 훌륭한 워크 벤치라고 생각합니다. 나는 많은 스크래핑, 데이터 랭 글링, 대규모 데이터 작업, 네트워크 분석, 베이지안 모델링 및 시뮬레이션을 수행합니다. 이 모든 것들은 일반적으로 속도와 유연성이 필요하므로 파이썬이 R보다 더 잘 작동한다는 것을 알았습니다. 다음은 내가 좋아하는 파이썬에 관한 몇 가지 사항입니다 (일부는 위에서 언급하고 다른 요점은 언급하지 않음).

-클리너 구문; 더 읽기 쉬운 코드. 나는 파이썬이 더 현대적이고 문법적으로 일관된 언어라고 생각합니다.

-Python에는 노트북, Ipython 및 코드 공유, 공동 작업, 게시를위한 기타 놀라운 도구가 있습니다.

-iPython의 노트북을 사용하면 Python 코드에서 R을 사용할 수 있으므로 항상 R로 돌아갈 수 있습니다.

Cython, NUMBA 및 기타 C 통합 방법을 사용하면 코드를 순수한 C와 비슷한 속도로 만들 수 있습니다. 알고있는 한 R에서는 달성 할 수 없습니다.

-Pandas, Numpy 및 Scipy는 표준 R을 물 밖으로 불어냅니다. 예, R이 한 줄로 할 수있는 몇 가지 일이 있지만 Pandas 3 또는 4를 사용합니다. 그러나 일반적으로 Pandas는 더 큰 데이터 세트를 처리하고 사용하기가 더 쉽고 다른 Python과의 통합과 관련하여 놀라운 유연성을 제공합니다. 패키지 및 방법.

-파이썬이 더 안정적입니다. 2gig 데이터 세트를 RStudio에로드하십시오.

-위에 언급되지 않은 깔끔한 패키지는 대부분의 베이지안 모델링을위한 훌륭한 일반 패키지 인 PyMC3입니다.

-위에서 ggplot2를 언급하고 파이썬이없는 것에 대해 언급합니다. Matlab의 그래프 기능을 사용하거나 Python에서 matplotlib을 사용한 적이 있다면 후자 옵션이 일반적으로 ggplot2보다 훨씬 더 유용하다는 것을 알게 될 것입니다.

그러나 아마도 R은 배우기 쉽고 아마도 모델링 절차에 익숙하지 않은 경우에 자주 사용합니다. 이 경우 R의 기성품 통계 라이브러리의 깊이는 타의 추종을 불허합니다. 이상적으로는 필요에 따라 사용할 수있을 정도로 충분히 알고 싶습니다.


5

Windows에서 작업 해야하는 사람들에게는 Anaconda ( https://store.continuum.io/cshop/anaconda/ )가 실제로 많은 도움이됩니다. Windows에서 패키지를 설치하는 것은 골치 아픈 일이었습니다. Anaconda를 설치하면 하나의 라이너로 즉시 사용 가능한 개발 환경을 설정할 수 있습니다.

예를 들어

conda create -n stats_env python pip numpy scipy matplotlib pandas

이 모든 패키지는 자동으로 가져오고 설치됩니다.


5

파이썬은 R과 비교하기 전에 갈 길이 멀다. R보다 패키지가 훨씬 적고 품질이 낮다. 기본 사항을 고수하거나 사용자 정의 라이브러리에만 의존하는 사람들은 아마도 파이썬에서만 독점적으로 일을 할 수 있지만 고급 정량 솔루션이 필요한 사람이라면 R에 가까운 것은 없다고 감히 말할 수 있습니다.

현재까지 Python에는 R-Studio와 비슷한 과학적 Matlab 스타일 IDE가 없으며 (Spyder는 말하지 마십시오) 콘솔의 모든 것을 해결해야합니다. 일반적으로, 전체 파이썬 경험에는 대부분의 사람들이 부족하고 신경 쓰지 않는 상당한 양의 "유쾌함"이 필요합니다.

나를 잘못 이해하지 마라. 나는 파이썬을 좋아한다. 실제로 R과 달리 실제 프로그래밍 언어 인 내가 가장 좋아하는 언어이다 . 그러나 순수한 데이터 분석에 관해서는 지금까지 가장 전문적이고 개발 된 솔루션 인 R에 의존합니다. 데이터 분석과 소프트웨어 엔지니어링을 결합해야 할 때 Python을 사용합니다. 예를 들어, 더티 R 스크립트에서 처음 프로그래밍 한 메소드를 자동화하는 툴을 만듭니다. 많은 경우에 rpy2를 사용하여 Python에서 R을 호출합니다. 대부분의 경우 R 패키지가 훨씬 더 좋기 때문에 (또는 파이썬에는 전혀 존재하지 않기 때문에). 이렇게하면 두 세계를 최대한 활용하려고합니다.

나는 수학적 스타일의 구문과 속도를 좋아하기 때문에 순수한 알고리즘 개발을 위해 여전히 Matlab을 사용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.