더북(TheBook)

시스템에서의 배열 지원 파이썬에서 배열을 처리하는 형태는 다양하다. 여기에서는 각각의 형태를 간략히 살펴보겠지만, 이 책의 전체적인 접근법이 그렇듯 의미 있고 효율적인 코드를 작성하기 위해 알아야 할 몇 가지 기법을 중점적으로 살펴볼 것이다. 이런 기본 연산 코드를 읽고 작성하는 경험이 조금 쌓이고 나면 파이썬에서 배열을 처리하는 여러 방법 간의 차이점을 더욱 잘 이해할 수 있으므로, 이 주제는 4장에서 다시 다룬다.

파이썬 내장 리스트 데이터 타입 가장 기본적인 형태로서 생성, 인덱스를 이용한 접근, 인덱스를 이용한 할당, 반복, 총 4가지 핵심 연산을 지원한다. 내장된 리스트 데이터 타입으로도 이런 기본적인 연산을 수행할 수 있으므로 이 책에서는 내장된 리스트 데이터 타입을 사용한다. 4장에서는 배열의 길이를 변경하는 연산 등 리스트 데이터 타입이 지원하는 고급 기능을 살펴볼 것이다. 여기에서 정의된 배열도 충분히 강력하므로 이 배열만 이용해도 프로그래밍과 흥미로운 애플리케이션을 많이 배울 수 있다. 파이썬 프로그래머는 배열과 파이썬 리스트를 구분하지 않는다. 여기에서 구분하는 이유는 C나 자바 등의 다른 프로그래밍 언어에서 고정 길이 배열과 네 가지 기본 연산(배열 길이를 변경할 수 있는 연산은 지원하지 않는다)을 지원하는 기능을 내장하고 있기 때문이다.

파이썬 numpy 모듈 프로그래밍 언어를 설계할 때 간결함과 효율성의 적절한 타협점을 찾아야 한다는 것이 핵심이었다. 컴퓨터가 1초 동안 기본 연산을 엄청나게 많이 수행할 수 있어 보이지만, 실행 속도가 느리게 느껴지는 경우도 종종 있다. 파이썬의 경우 간단한 작업을 수행하는 프로그램에서도 내장된 리스트 데이터 타입이 성능에 심각한 문제를 일으킬 수 있다. 그렇기 때문에 과학자나 공학자들은 숫자로 구성된 아주 큰 배열을 처리하기 위해 numpy라는 파이썬 확장 모듈을 사용하곤 한다. 이 모듈은 표준 파이썬 리스트의 비효율적인 문제점을 해결한 저수준 표현 방식을 사용하기 때문이다. 성능에 관련된 문제는 4장에서 깊이 있게 파고들기 때문에 이런 상황에서 발생하는 문제를 처리하는 방법을 더 많이 알게 될 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.