NumPy 소개

이 장에서는 3부와 함께 파이썬에서 데이터를 효과적으로 불러오고 저장하며 조작하는 기술들을 살펴보겠습니다. 데이터의 세계는 무척 방대합니다. 문서, 이미지, 오디오, 수치 측정값 등 데이터 세트의 형태와 출처는 매우 다양합니다. 하지만 보기에는 서로 제각각인 이 데이터들도 본질적으로는 숫자 배열로 표현될 수 있습니다.

예를 들어 이미지는 각 영역의 픽셀 밝기를 나타내는 2차원 숫자 배열로 볼 수 있습니다. 오디오 클립은 시간에 따른 소리의 강도를 나타내는 1차원 배열로 생각합니다. 텍스트 역시 특정 단어의 출현 빈도 등을 수치화하여 숫자 배열로 변환이 가능합니다. 어떤 데이터든 분석이 가능한 상태로 만드는 첫 번째 단계는 바로 데이터를 숫자 배열로 변환하는 것입니다. (이 과정의 구체적인 예는 피처 엔지니어링 섹션에서 다루겠습니다.)

이러한 이유로 숫자 배열을 효율적으로 저장하고 조작하는 능력은 데이터 과학의 가장 핵심적인 기초입니다. 이제 파이썬에서 이러한 숫자 배열을 전문적으로 처리하는 도구인 NumPy와 Pandas(3부에서 논의)를 알아보겠습니다.

이번 장에서는 NumPy를 집중적으로 다룹니다. NumPy(Numerical Python의 약자)는 대용량 데이터 버퍼를 효율적으로 저장하고 처리할 수 있는 인터페이스를 제공합니다. NumPy 배열은 어떤 면에서 파이썬의 기본 ‘리스트’ 타입과 비슷해 보이지만, 데이터의 양이 늘어날수록 리스트보다 훨씬 더 효율적인 저장 및 연산 능력을 보여줍니다. NumPy는 파이썬 데이터 과학 생태계의 핵심을 이루고 있으므로, NumPy를 능숙하게 다루는 법을 익혀두면 데이터 과학의 어떤 분야를 공부하든 큰 도움이 될 것입니다.

서문에서 안내한 대로 Anaconda 스택을 설치했다면 이미 NumPy가 준비되어 있을 것입니다. 직접 설치하고 싶다면 http://www.numpy.org/의 설치 안내를 따르시기 바랍니다. 설치 후에는 다음과 같이 NumPy를 불러와 버전을 확인합니다.

import numpy

numpy.__version__
'1.21.2'

이 책의 예제들을 원활하게 실행하려면 NumPy 1.8 이상의 버전을 권장합니다. 관례상 데이터 과학 분야에서는 NumPy를 불러올 때 np라는 별칭을 주로 사용합니다.

앞으로 이 책 전체에서 NumPy를 가져오고 사용하는 표준적인 방식으로 이 방식을 사용할 것입니다.

내장 도움말 활용하기

학습하면서 잊지 말아야 할 점은, IPython에서 탭(Tab) 자동 완성 기능을 통해 패키지 내용을 빠르게 훑어보거나 물음표(?) 기호를 사용해 상세 문서를 바로 확인할 수 있다는 것입니다. 사용법이 기억나지 않는다면 IPython 도움말과 문서 섹션을 다시 참조해 보세요.

예를 들어 NumPy 네임스페이스의 모든 내용을 보려면 다음과 같이 입력합니다.

``ipython In [3]: np.


NumPy 자체에 대한 도움말을 보려면 다음과 같이 입력합니다.

``ipython
In [4]: np?

더 자세한 문서와 튜토리얼 등은 http://www.numpy.org에서 확인하실 수 있습니다.