NumPy 배열

Programming/NumPy&SciPy 2014. 2. 19. 04:30 |


NumPy 배열


NumPy는 과학계산을 수행하는 파이썬 핵심 패키지다. 이 패키지는 N차원 배열, 원소별 연산(브로드캐스팅), 선형대수학과 같은 핵심 수학 연산, C/C++/포트란 코드 인터페이스를 제공한다. 


NumPy 특징

파이썬은 데이터를 여러 방식으로 저장하지만, 가장 많이 사용되는 방식은 리스트와 딕셔너리다. 파이썬 리스트 객체는 거의 모든 종류의 객체를 담을 수 있다. 그러나 리스트에 담긴 원소의 연산은 반복문 내에서만 수행되는데, 파이썬에서는 반복문 안에서의 연산이 비효율적이다. 

하지만 NumPy 패키지는 'ndarray' 라는 데이터 저장 객체를 제공하여 파이썬 리스트의 단점을 극복할 수 있다.


ndarray는 리스트와 비슷하지만, 한 행에 같은 형식의 원소를 저장한다는 점에서 여러 타입의 객체를 저장하는 유연성이 높은 리스트와는 다르다. 예를 들어 파이썬 리스트의 첫 번째 원소가 리스트일 때, 두 번째 원소는 리스트나 딕셔너리로 만들 수 있다. 

NumPy 배열에서는 부동소수, 정수, 또는 문자열 등과 같이 한 가지 타입만 저장할 수 있지만, ndarray의 연산 속도는 일반적인 파이썬 리스트보다 훨씬 빠르다.


IPython의 '%timeit' 명령어를 사용하여NumPy의 ndarray와 파이썬 리스트, 둘의 연산 속도를 비교해 보았다.



이제 가급적 리스트보다는 NumPy의 ndarray를 사용하자!!

그리고, 반가운 소식이 하나있다. 그것은 Houdini 13부터는 NumPy를 지원한다는 점이다. 그전 버전에서는 NumPy를 사용자가 직접 다운받고 Houdini 디렉토리에 넣었는데 이제는 Houdini를 설치하면 NumPy패키지도 함께 설치가 된다. 정말 좋다!!! 

SciPy와 matplotlib 패키지는 같이 설치가 안되어서 이것들은 따로 설치해주어야 한다.

'Programming > NumPy&SciPy' 카테고리의 다른 글

SciPy와 NumPy 설치 방법  (0) 2014.02.19
왜 SciPy와 NumPy를 사용하는가?  (0) 2014.02.19
Posted by scii
: