데이터 과학을 위해 '더 개선된' 최신 필수 파이썬 툴 6가지
2021.07.26.
ⓒITWorld / Serdar Yegulalp | InfoWorld
지난 몇 개월 동안 파이썬을 위한 여러 데이터 과학 프로젝트에서 주요 기능 업데이트가 포함된 새로운 버전이 나왔다. 실제 수치 계산을 위한 프로젝트도 있고, 이와 같은 작업에 최적화된 빠른 코드를 더 쉽게 작성할 수 있는 프로젝트도 있다. 데이터 과학을 위한 필수 파이썬 툴 6가지를 정리했다.
사이파이 1.7
빠르고 강력한 수학 라이브러리를 원하는 파이썬 사용자에겐 넘파이(Numpy)가 있지만 넘파이 자체는 구체적인 작업에 초점을 두지 않는다. 그래서 필요한 것이 사이파이(SciPy)다. 넘파이를 사용해 선형 대수부터 통계 작업, 신호 처리에 이르기까지 일반적인 수학 및 과학 프로그래밍 작업을 위한 라이브러리를 제공한다.
사이파이는 오래전부터 수학과 통계학을 다루기 위한 편리하고 광범위하게 사용되는 툴을 제공했다. 여러 버전에 걸쳐 강력한 하위 호환성을 제공했지만 1.0 릴리스가 나오기까지 상당히 오랜 시간이 걸렸다.
코어 개발자인 랄프 고머스에 따르면, 사이파이 프로젝트가 버전 1.0이 나올 수 있었던 가장 큰 이유는 프로젝트를 감독, 관리하는 방법의 통합이다. 하지만 맥OS와 윈도우 빌드를 위한 지속적 통합 프로세스와 사전 빌드된 윈도우 바이너리를 제대로 지원한 것도 한몫을 했다. 특히 후자는 윈도우 사용자가 별도 과정 없이 사이파이를 사용할 수 있음을 의미한다.
사이파이 프로젝트는 2017년 1.0 릴리스 이후 지금까지 7차례 주 릴리스를 내놨고 그 과정에서 다음과 같이 부분이 개선됐다.
파이썬 2.7 지원 종료와 그 이후의 코드베이스 현대화
더 많은 기능, 개선된 문서, 많은 새로운 알고리즘(예를 들어 성능이 향상되고 현대화된 인터페이스를 갖춘 새로운 고속 푸리에 변환 모듈)으로 사이파이의 하위 모듈에 대한 지속적인 개선과 업데이트
일반적인 일차방정식 문제를 해결하기 위한 포트란 패키지인 LAPACK내 함수에 대한 지원 개선
더 빠른 장기 실행 코드를 위한 JIT 컴파일러가 포함된 대체 파이썬 런타임인 파이파이(PyPy)와의 호환성 개선
사이파이 바이너리는 파이썬 패키지 인덱스에서 다운로드할 수 있고 pip install scipy를 입력해도 된다. 소스 코드는 깃허브에서 받을 수 있다.
넘바 0.53.0
넘바(Numba)를 이용하면 LLVM 컴파일러 프레임워크를 통해 파이썬 함수나 모듈을 어셈블리 언어로 컴파일할 수 있다. 파이썬 프로그램을 실행할 때마다 즉석에서 할 수 있고 사전에 컴파일할 수도 있다. 그런 측면에서 넘바는 사이썬(Cython)과 비슷하지만 다루기 더 편리한 경우가 많다. 반면 사이썬을 사용해 가속화된 코드는 서드파티에 배포하기가 더 쉽다는 장점이 있다.
넘바가 데이터 과학자에게 가장 확실히 도움이 되는 부분은 파이썬으로 작성한 작업의 속도를 높여준다는 점이다. 순수 파이썬으로 프로젝트 프로토타입을 만든 다음 여기에 넘바 주석을 추가해 업무 용도에 필요한 빠른 속도를 얻을 수 있다.
넘바는 머신 러닝 및 데이터 과학 애플리케이션용으로 제작된 하드웨어에서 더 빠르게 실행되는 속도 향상 효과도 제공한다. 넘바의 이전 버전은 CUDA 가속화 코드로의 컴파일을 지원했지만 최신 버전은 더 빠른 컴파일을 위한 새롭고 더 효율적인 GPU 코드 감소 알고리즘을 채택했다. 엔비디아 CUDA와 AMD ROCm API를 모두 지원한다.
넘바는 가능할 때 여러 CPU 코어에 걸친 병렬 실행을 위해 JIT 컴파일된 함수를 최적화할 수도 있다. 단, 이 작업을 적절히 수행하기 위해서는 코드에 약간의 추가 구문이 필요하다.
넘바는 파이썬 패키지 인덱스에서 다운로드할 수 있으며 명령줄에서 pip install numba를 입력해 설치할 수도 있다. 윈도우, 맥OS, 제네릭 리눅스용으로 사전 빌드된 바이너리가 제공된다. 또한 아나콘다(Anaconda) 파이썬 배포판의 일부로도 제공되는데, 이 경우 conda install numba를 입력해 설치할 수 있다. 소스 코드는 깃허브에 있다.
사이썬 3.0(베타)
사이썬(Cython)은 파이썬 코드를 매우 빠르게 실행되는 C 코드로 변환한다. 이 변환은 무거운 계산이 필요하거나 조밀한 루프에서 실행되는 코드에서 가장 유용한데, 두 경우 모두 공학, 과학, 머신 러닝을 위한 파이썬 프로그램에서 널리 사용된다.
사이썬 코드는 기본적으로 파이썬 코드에 일부 구문을 추가한 것이다. 사이썬을 사용해 파이썬 코드를 C로 컴파일할 수 있지만, 수십 배에서 수백 배에 이르는 최고의 성능 개선을 위해서는 사이썬의 형식 주식을 사용해야 한다.
사이썬 3이 나오기 전에는 0.xx 버전 번호 체계가 사용됐다. 사이썬 3이 나오면서 파이썬 2 구문에 대한 지원은 중단됐다. 사이썬 3은 여전히 베타 단계지만 파이썬 언어 관리자는 이전 버전 대신 이 버전을 사용하도록 장려한다. 사이썬 3은 ‘순수 파이썬’ 모드의 사용 확대도 강조한다. 이 모드에서는 전부는 아니지만 많은 사이썬 함수를 100% 파이썬 호환 구문을 통해 사용할 수 있다.
사이썬은 아이파이썬(IPython)/주피터(Jupyter) 노트북과의 통합도 지원한다. 사이썬으로 컴파일된 코드는 인라인 주석을 통해 다른 파이썬 코드처럼 주피터 노트북에서 사용할 수 있다.
또한 프로파일에 따른 최적화를 활성화해 주피터용 사이썬 모듈을 컴파일할 수 있다. 이 옵션을 사용해 빌드한 모듈은 해당 모듈에 대해 생성된 프로파일링 정보를 기반으로 컴파일 및 최적화되므로 더 빠르게 실행된다. 참고로 이 옵션은 GCC 컴파일러를 사용할 때만 쓸 수 있으며 MSVC는 아직 지원하지 않는다.
사이썬은 파이썬 패키지 인덱스에서 받을 수 있고 명령줄에서 pip install cython을 입력해 설치할 수 있다. 32비트 및 64비트 윈도우, 제네릭 리눅스, 맥OS용 바이너리 버전도 포함된다. 소스 코드는 깃허브에 있다. 사이썬을 사용하려면 플랫폼에 C 컴파일러가 있어야 한다.
대스크 2021.07.0
처리 성능의 비용이 어느 때보다 저렴하다고는 해도, 여러 CPU 코어와 물리적 프로세서 또는 계산 노드로 작업을 분할해 성능을 최대한 활용하는 것은 간단치 않은 일이다.
대스크는 파이썬 작업을 받아서 여러 시스템에 걸쳐 효율적으로 스케줄링한다. 대스크 작업을 실행하는 데 사용하는 구문은 파이썬의 다른 작업에 사용하는 구문과 사실상 같으므로 기존 코드를 조금만 손보면 대스크를 활용할 수 있다.
대스크는 파이썬의 여러 가지 인기 있는 머신 러닝 및 과학 컴퓨팅 라이브러리를 위한 자체 인터페이스 버전을 제공한다. 예를 들어 데이터프레임(DataFrame) 객체는 판다스(Pandas) 라이브러리에 있는 것과 같고, 어레이(Array) 객체는 넘파이의 어레이와 같은 방식으로 작동한다. 따라서 대스크의 코드 몇 줄만 수정하면 기존 코드를 신속하게 병렬화할 수 있다.
(후략)
[원문 기사 : https://www.itworld.co.kr/news/202304 ]
※ 본 내용은 한국아이디지(주) (https://www.idg.co.kr/)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒ 2020 International Data Group. 무단전재 및 재배포 금지.
번호 | 제목 | 조회수 | 작성 |
---|---|---|---|
공지 | [Open UP 활용가이드] 공개SW 활용 및 개발, 창업, 교육 "Open UP을 활용하세요" | 316109 | 2020-10-27 |
공지 | [Open UP 소개] 공개SW 개발·공유·활용 원스톱 지원 Open UP이 함께합니다 | 305710 | 2020-10-27 |
9501 | 오픈AI, 파이썬 기반 언어 ‘트리톤’ 출시··· “GPU 프로그래밍 지원” | 5428 | 2021-07-30 |
9500 | ‘오픈소스’, 미래 SW산업 생태계를 바꾸다 | 4555 | 2021-07-29 |
9499 | 낱낱이 SW 요소 공개하라··· 美 정부의 'SBOM 의무화'가 미칠 영향 | 4746 | 2021-07-29 |
9498 | 깃허브, ‘개발자 권리 펠로우십’ 발표··· DMCA 분쟁 해결 지원 | 3970 | 2021-07-28 |
9497 | [주간 OSS 동향 리포트] 공공 '클라우드 전면전환' 시동.. '국산·공개소프트웨어' 활성화 이끈다 | 4432 | 2021-07-27 |
9496 | MS, 타입스크립트 4.4 베타 출시··· “성능 개선 및 제어 흐름 분석 지원" | 4742 | 2021-07-27 |
9495 | 데이터 과학을 위해 '더 개선된' 최신 필수 파이썬 툴 6가지 | 4793 | 2021-07-27 |
9494 | 공공 '클라우드 전면전환' 시동…'국산·공개 SW' 활성화 이끈다 | 4522 | 2021-07-26 |
9493 | [FTA 시대 훌쩍 넘는 농업의 '제3인류'-에필로그] "틱톡·넷플릭스·아마존 알고리듬처럼" 초개인화(Hyper-Personalization)로 진화하고 있는 농업 | 4637 | 2021-07-26 |
9492 | 인공지능이 생물학‧의학에 혁신적인 비전 제시!... 딥마인드 AI '알파폴드' 인간 단백질 2만개, 3D 구조 등 예측하고 가장 완벽한 데이터베이스 공개 | 5000 | 2021-07-26 |
0개 댓글