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 배열은 한 가지 타입만 갖고 있으니, 해당 타입과 그의 제약 사항을 자세히 아는 것이 중요.
'파이썬 데이터 사이언스 핸드북' 카테고리의 다른 글
1장 Jupyter: 파이썬에 날개를 달자 - IPython의 도움말과 문서 (0) | 2024.03.29 |
---|