Numpy
- 파이썬의 수치해석용 패키지이다.
ndarray 클래스
- N-dimensional Array의 약자이다.
- <class 'numpy.ndarray'>
- Numpy의 다차원 행렬구조 클래스이다.
- 파이썬의 List와 동일한 출력형태를 갖는다.
- contiguous memory layout
- 내부 반복문 사용으로 빠른 행렬 연산 가능
- array indexing 기능
- 벡터화 연산 가능
Python의 List 클래스 객체는 linked list와 같은 형태를 가지므로 각각의 원소가 다른 자료형이 될 수 있다. 그러나 ndarray의 클래스 객체는 C언어의 행렬처럼 연속적인 메모리 배치 ( Contiguous memory layout )을 가지기 때문에 모든 원소가 같은 자료형이어야 한다. 이러한 제약을 가지는 대신 내부의 원소에 대한 접근과 반복문 실행이 빨라진다.
a = np.arange(100)
a2 = a**2
ndarray 클래스의 또 다른 특징은 vectorized operation을 지원한다는 것이다. 예를 들어 ndarray 객체의 원소들의 크기를 제곱한다면 객체 자체를 제곱하면 된다. 반면 list 객체의 경우 loop 문을 통해 각각의 원소들을 제곱해주어야한다. 따라서 ndarray의 벡터화 연산으로 대체할 수 있는 경우에는 Python 자체의 반복문을 사용하지 않는 것이 코딩 관례이다.
'데이터 분석' 카테고리의 다른 글
Numpy Broadcasting (0) | 2020.02.29 |
---|---|
Numpy 기본 함수 (0) | 2020.02.29 |
Numpy ndarray shape 변경 (0) | 2020.02.29 |
Numpy ndarray 인덱싱, 슬라이싱 (0) | 2020.02.29 |
Numpy ndarray 생성 (0) | 2020.02.29 |
댓글