-
데이터 분석과 시각화 중심의 작업에서 파이썬은 충분히 사용 가능하지만, 사용 경험 측면에서는 비효율적 구조가 많음
- 연구실 사례에서 R보다 파이썬이 단순한 시각화나 통계 계산에도 더 많은 코드와 시간을 요구하는 경향 확인
-
pandas, matplotlib 등 주요 라이브러리 사용 시에도 코드 복잡도와 문법 부담이 커, 분석 논리보다 구현 세부에 집중하게 됨
- 반면 R의 tidyverse는 데이터 처리와 통계 요약을 자연어 수준의 간결한 표현으로 수행 가능
- 데이터 과학 언어로서 논리와 물리적 처리(로지스틱스)의 분리가 중요하며, 파이썬은 이 부분에서 구조적 한계 존재
데이터 사이언스 언어로서의 파이썬 한계
-
파이썬은 데이터 사이언스에 널리 사용되지만, 본질적 적합성보다는 역사적 요인과 범용성 덕분에 확산된 측면이 있음
- 저자는 R을 더 선호하며, 파이썬의 인기는 “역사적 사고(historical accident)”에 가깝다고 언급
- 딥러닝 분야에서는 PyTorch 등으로 인해 파이썬이 강세지만, 데이터 정제·탐색·시각화·통계 모델링 등에서는 불편함이 많다고 지적
-
연구실 내 경험에서, 학생들이 파이썬으로 단순한 그래프 수정이나 계산을 즉시 수행하지 못함
- 예: 박스플롯을 바이올린플롯으로 바꾸거나, 히스토그램을 밀도 그래프로 전환하는 작업
- R에서는 몇 분이면 가능한 작업이 파이썬에서는 “자리로 돌아가서 다시 시도해야 하는” 수준의 복잡도
-
숙련된 파이썬 전문가와 협업한 수업에서도 R보다 훨씬 긴 코드와 복잡한 구조가 필요했음
- 동일한 데이터 처리 작업이 R에서는 간단한 함수 체인으로 가능하지만, 파이썬에서는 여러 단계의 인덱싱·루프·데이터 재조립이 필요
좋은 데이터 사이언스 언어의 조건
-
데이터 사이언스는 데이터 탐색, 요약, 패턴 발견, 모델 적합, 시각화 중심의 활동
- 이러한 작업은 인터랙티브 환경과 빠른 실험 반복이 중요하며, 컴파일 언어보다 스크립트형 언어가 적합
- 성능보다는 개발자의 편의성과 오류 최소화가 우선이며, 필요 시 일부 연산만 고성능 언어로 재작성 가능
-
현실적으로 고려할 수 있는 언어는 R과 Python
- Matlab, Mathematica 등은 상용이거나 생태계가 제한적
- Julia는 언급되지만, 저자는 충분히 다뤄보지 않아 평가를 유보
논리와 로지스틱스의 분리
-
데이터 분석 언어는 분석 논리(무엇을 계산할지) 와 로지스틱스(어떻게 계산할지) 를 분리해야 함
- 데이터 타입, 인덱스, 루프, 수동 조립 등을 신경 써야 한다면 이는 로지스틱스에 얽매인 상태
-
펭귄 데이터셋 예시에서, R의 tidyverse 코드는 자연어처럼 간결하게 평균과 표준편차를 계산
-
filter, group_by, summarize 체인으로 직관적 표현 가능
-
Python의 pandas 코드도 유사한 기능을 수행하지만, 따옴표·괄호·메서드 체인이 많아 가독성이 떨어짐
-
기본 Python 기능만으로 동일 작업을 수행하면 루프와 수동 그룹화 코드가 길고 복잡해짐
- 데이터 분리·재조립·평균·표준편차 계산 등 모든 단계를 직접 구현해야 함
결론 및 향후 예고
- 파이썬은 데이터 분석에서 논리적 표현보다 구현 세부에 집중하게 만드는 구조적 문제가 있음
- 이러한 복잡성은 언어 자체의 한계이거나, 라이브러리 설계의 제약에서 비롯된 것으로 보임
- 후속 글에서는 파이썬이 R보다 데이터 분석을 어렵게 만드는 구체적 이유를 다룰 예정
추가 언급 및 비교 의견
- 일부 독자 코멘트에서는 R의 tidyverse가 기본 R보다 장황하지만 강력하다고 평가
- 반면 R은 모듈화·테스트·CLI 구현 등 소프트웨어 개발 측면에서 불편함이 크다는 의견도 존재
- Python은 로깅, 클래스, 모듈, 가상환경 등 개발자 경험이 우수하지만, matplotlib의 비직관적 구조는 비판 대상
- pandas 문법은 비일관적이고 난해, scikit-learn은 설계상 문제가 있으나 일상 사용에는 큰 영향 없음
- 일부는 Python을 “불안정하고 품질 낮은 코드 작성이 쉬운 언어”로 평가하며, 지속 가능한 개발에는 정적 타입 언어가 더 적합하다고 언급