이 장에서 다루는 내용
보통 원천 데이터는 온갖 종류의 텍스트 문서에서 얻을 수 있다. 그리고 그 텍스트는 숫자로 되어 있을 때가 많다. 엑셀과 CSV 스프레드시트, 특히 데이터베이스 테이블은 100만 혹은 억 단위의 수치형 데이터를 보관할 수 있다. 파이썬의 기본 함수들은 텍스트 처리에 매우 능하지만, 정확한 수치 연산을 처리하느라 때때로 애먹고는 한다. 이때 구원투수로 numpy가 등판한다.
NumPy는 Numeric Python(numpy로 임포트한다)으로 고성능 수치 연산을 구현하는 효율적이고 병렬화된 함수들에 접근할 수 있는 인터페이스다. numpy 모듈은 새로운 파이썬 데이터 구조인 배열(array)과 배열에 특화된 함수를 제공하며, 난수 생성, 데이터 집계, 선형대수, 푸리에 변환 등 유용한 함수를 지원한다.
● ● ● ●
테라바이트의 나라로
여러분의 프로그램이 엄청나게 큰 수치형 데이터(테라바이트나 그보다 큰)를 다루어야 한다면 h5py 모듈을 사용하는 것이 좋다. h5py 모듈은 IDL이나 MATLAB 등 다양한 서드파티(third-party) 소프트웨어에서 지원하는 HDF5 바이너리 데이터 포맷을 지원한다. h5py 모듈은 배열과 딕셔너리 같은 익숙한 numpy와 파이썬 메커니즘을 제공한다. numpy 사용 방법을 익히고 나면, 그다음은 h5py다. 하지만 이 책에서는 다루지 않는다.
이 장에서는 다양한 데이터 소스에서 여러 형태의 numpy 배열을 만들고, 배열의 형태를 변형하거나 자르고, 인덱스를 붙이고, 사칙·논리 연산과 데이터 집계 함수를 배열에 적용하는 방법을 배울 것이다.