R 및 파이썬 사용자가 여기 있습니다. 매일의 데이터 분석을 위해 R을 사용하고 텍스트 처리와 쉘 스크립팅에 더 많은 작업을하는 Python을 사용합니다. 점점 커지는 데이터 세트로 작업하고 있으며,이 파일들은 종종 바이너리 또는 텍스트 파일로 제공됩니다. 일반적으로하는 일의 유형은 통계/기계 학습 알고리즘을 적용하고 대부분의 경우 통계 그래픽을 작성하는 것입니다. SQLite와 함께 R을 사용하고 반복적 인 작업을 위해 C를 작성합니다. Hadoop을 살펴보기 전에 NumPy/Scipy에 시간을 투자하는 것이 좋다고 들었습니다. 메모리 관리가 더 좋다고 들었 기 때문입니다. [배경 지식이있는 Numpy/Scipy로 전환하는 것이 그리 큰 것 같지 않습니다] - 경험이있는 사람이 있는지 궁금합니다. 두 가지를 사용하여이 분야의 개선점에 대해 논평 할 수 있으며,이 문제를 다루는 숙어가 Numpy에 있다면. (나는 Rpy2에 대해서도 알고 있지만, Numpy/Scipy가 나의 필요를 다룰 수 있는지 궁금해한다.) 감사합니다 -R 사용자를위한 Numpy?
답변
기계 학습 및 통계를 수행 할 환경을 찾을 때 R의 힘은 가장 확실하게 라이브러리의 다양성입니다. 내 지식으로 SciPy + SciKits는 CRAN을 대신 할 수 없습니다.
메모리 사용에 관해서, R은 파이썬이 참조 전달을 사용하는 동안 패러다임 패러다임을 사용하고있다. 값에 의한 전달은 "직관적 인"코드로 이어질 수 있고, 참조에 의한 전달은 메모리 사용을 최적화하는 데 도움이 될 수 있습니다. Numpy는 또한 배열 (복사본이없는 서브 어레이의 일종)에서 "뷰"를 가질 수 있습니다.
속도와 관련하여 순수 파이썬은 배열의 개별 요소에 액세스하는 데있어 순수 R보다 빠르지 만 numpy 배열 (benchmark)을 처리하면이 이점이 사라집니다. 다행히 Cython을 사용하면 속도가 크게 향상됩니다.
Big Data로 작업하는 경우 Python (HDF5)을 사용하면 스토리지 기반 어레이에 대한 지원이 향상됩니다.
rpy2는 가능한 한 전환에 대한 옵션을 탐색하는 데 도움이 될 수 있습니다 (복사본이 만들어지지 않고 R과 Numpy 사이에서 배열을 왕복 할 수 있음).
예, 복사 - 의해 - 가치 의미론은 살인자입니다. Big Data를 살펴 보는 것도 의미가 있었지만, 말하듯이 SciPy로가는 길은 편합니다. – hatmatrix
그렇습니다. 기능 세계는 copy-on-modification과 같은 최적화 트릭으로 빠르게 옮겨졌습니다. R, "약속"(수정 된 경우 복사)). 그러나 개체가 수정되지 않은 경우에만 도움이됩니다 (함수에 매개 변수로 전달되는 동안 매우 큰 행렬의 rownames를 변경하면 도움이되지 않습니다). – lgautier
실제로 기계 학습은 예를 들어 http://mdp-toolkit.sourceforge.net/과 같은 파이썬에서 꽤 잘 다루어졌으며 http://mloss.org/software/language/python/ – user333700
나는 매일 NumPy와 R을 사용합니다.
숫자가 많은 경우, NumPy에서 R까지 큰 여백 ('R'패키지 'Matrix'포함)을 선호합니다. 구문 정리 도구가 더 커지고 계산 속도가 빨라집니다. R은 어떤 방법 으로든 천천히). 예를 들어, NumPy의 방송 기능은 R에 아날로그가 있다고 생각하지 않습니다.
예를 들어 csv 파일에서 데이터 세트를 읽고 ML 알고리즘 (예 : 평균 센터 또한
data = NP.loadtxt(data1, delimiter=",") # 'data' is a NumPy array
data -= NP.mean(data, axis=0)
data /= NP.max(data, axis=0)
내가 ML 알고리즘을 부호화 할 때, I 선형 대수 나 소자 와이즈에서 작동 할 수 있으며이 또한 이해 데이터 구조가 필요하다고 발견 (예를 들어, 행렬 곱셈 각 치수) 스케일 재 단이 필요 , 전치 등). NumPy는이를 가져오고 이러한 하이브리드 구조를 쉽게 만들 수 있습니다 (연산자 오버로드 또는 서브 클래 싱 등 없음).
당신은 NumPy/SciPy에 실망하지 않을 것입니다. 아마도 놀랄 것입니다.
그래서, 몇 가지 권장 사항 - 일반적으로 특히, 귀하의 질문에 사실을 주어진 :
는 NumPy와와 Scipy를 모두 설치합니다. 대략적인 기준으로, NumPy와는와 ( NumPy와보다 실제로 여러번 크다) SciPy (특히 ndarray 단위) 코어 데이터 구조를 제공하고이 특정 영역 기능을 제공한다 (예를 들어, 통계, 신호 처리, 통합).
dev 버전이 2.0이므로 저장소 버전, 특히 w/r/t NumPy를 설치하십시오. Matplotlib과 NumPy는 긴밀하게 통합되어 있습니다. 다른 라이브러리를 사용하지 않고도 하나를 사용할 수 있지만 둘 다 파이썬 라이브러리 중에서 각각의 클래스에서 가장 좋습니다. 당신은 easy_install을 통해이 세 가지를 모두 얻을 수 있습니다.
NumPy와/SciPy는 modules 여러 특별히 클러스터링 패키지와 통계 패키지를 포함하여, 기계 학습/통계로 이동합니다.
- 뿐만 아니라 패키지 일반 연산에 관한 있지만 메이크 ML을 코딩하는 것은, 특히 많은 빠른 최적화와 선형 대수 알고리즘을를.
도 있습니다있는 SciKit의, 하지 기본 NumPy와 나 SciPy 라이브러리에 포함 별도로 설치해야합니다. 일반적으로 각 SciKit은 해당 도메인에서 간소화 코딩의 편의 용 래퍼 집합입니다. 가장 관련성이 높은 것으로 판단되는 SciKits는 (가장 근접한 가까운 이웃)이고 은입니다 (로지스틱 회귀, 다중 레이어 퍼셉트론, 지원 벡터 머신과 같은 ML/통계 회귀 및 분류 알고리즘 세트) .
은/= np.max()가/= np.std()가 아니어야합니까? – denis
아니요, 안됩니다.나는 ML 입력에 대한 전처리 데이터의 철저한 낭독이 아닌 위의 예를 제시했습니다. 때로는 크기를 재조정하여 각 차원에 단위 분산이 있으므로 원하는 경우가 아니라 다른 경우가 있습니다. 어쨌든, 본 예제는 데이터를 ML 입력으로 준비하는 매우 일반적인 기술을 설명하지만 다른 몇 가지가 있습니다 (예 : "기계 학습 : 알고리즘 관점, Stephen Marsland, Ch 3, 2009, 메서드 사용 – doug
모든 참조 주셔서 감사합니다 - 나는 그들에게 시도를 줄 것이다 ... – hatmatrix
- 1. R 사용자에게 프로그래밍 문제가 있습니까?
- 2. 시각 장애가없는 사용자를위한 Emacspeak
- 3. 많은 사용자를위한 많은 테이블?
- 4. 사용자를위한 ORACLE 권장 역할
- 5. 모바일 사용자를위한 최고의 위키
- 6. WPF 사용자를위한 Silverlight (4.0)
- 7. 현재 사용자를위한 합계
- 8. 여러 사용자를위한 데이터베이스 설계
- 9. 사용자를위한 이메일 주소 링크
- 10. 다중 사용자를위한 CouchDB 모델링
- 11. SourceSafe 사용자를위한 Subversion
- 12. 사용자를위한 방 설정
- 13. 여러 사용자를위한 세마포어
- 14. 사용자를위한 레일스 모델 구조
- 15. 인증 된 사용자를위한 iCal
- 16. Eclipse 사용자를위한 Xcode 팁?
- 17. PostgreSQL의 사용자를위한 CREATEDB
- 18. R 적합성 기능 R
- 19. R 모양의 패턴 R
- 20. [R]
- 21. 2D numpy 배열 목록을 하나의 3D numpy 배열로 변환 하시겠습니까?
- 22. NumPy 배열 슬라이스 없음
- 23. numpy 축을 따라 나누기
- 24. Numpy Ndarray 대각선을
- 25. numpy 어레이를 파일로 작성하십시오.
- 26. Python Numpy nan_to_num help
- 27. 멀티 코어 하드웨어의 numpy
- 28. scipy.sparse.dok_matrix에 numpy 배열 추가
- 29. Numpy transpose 곱셈 문제
- 30. numpy 행로드 및 저장
의견을 근거로 투표를 종료하십시오. –