본문 바로가기
파이썬 데이터 사이언스 핸드북

2장 NumPy 소개 : Understanding Data Types in Python

by 가으더 2024. 4. 4.
728x90

NumPy(Numerical Python)는 조밀한 데이터 버퍼에서 저장하고 처리하는 효과적인 인터페이스를 제공한다.

NumPy 배열은 파이썬의 내장 타입인 list와 비슷하지만 배열의 규모가 커질수록 데이터 저장 및 처리에 훨씬 더 효율적.

파이썬의 데이터 타입 이해하기

'데이터 배열이 파이썬 언어 자체에서 어떻게 처리될까'

'NumPy가 이를 어떻게 개선할까'

에 대해 알아보자

 

파이썬의 동적 타입 체계 → 편하고 쉽게 만듦

 

파이썬 정수는 정수 이상이다

파이썬 3.6의 단일 정수는 실제로 다음 네 가지 구성요소를 갖는다.

  • ob_refcnt : 파이썬이 조용히 메모리 할당/해체 처리를 돕는 참조 횟수
  • ob_type : 변수 타입을 인코딩
  • ob_size : 다음 데이터 멤버의 크기를 지정
  • ob_digit : 파이썬 변수가 나타내는 실제 정숫값을 포함

이를 구조체 일부에 담음으로써 동적으로 코드를 작성할 수 있게 된다.

파이썬 리스트는 리스트 이상이다

파이썬에서 여러 개의 요소를 담는 가변적인 표준 컨테이너는 리스트이다.

파이썬의 동적 타이핑 덕분에 서로 다른 데이터 타입의 욧를 담는 리스트를 만들 수 있다.

이 경우 각 항목이 완전한 파이썬 객체인 셈이다.(위에 말한 구성요소들이 하나하나 다 들어감.)

모든 변수가 같은 타입인 경우에는 이 정보가 대부분 불필요한게 중복   고정 타입 배열에 데이터를 저장하는 것이 더 효율적

동적 타입 릿트와 고정 타입(NumPy 스타일) 배열의 차이는 아래 그림으로 나타낸다.

리스트 : 유연성 -> 어떤 타입으로도 채울 수 있다.

NumPy 배열 : 유연성은 부족 but 데이터를 저장하고 가공할 때 효율적

파이썬의 고정 타입 배열

1. 내장 array 모듈을 통해 만들 수 있다. 아래의 'i'는 내용이 정수임을 가리키는 타입 코드이다.

2. NumPy 패키지의 ndarray 객체가 더 유용하다.

파이썬 리스트에서 배열 만들기

처음부터 배열 만들기

Numpy 표준 데이터 타입

NumPy 배열은 한 가지 타입만 갖고 있으니, 해당 타입과 그의 제약 사항을 자세히 아는 것이 중요.