Numpy 기초 1편
1. numpy
고성능 과학 계산용 패키지
matrix나 vector같은 array 연산의 사실상 표준
일반 리스트에 비해 빠르고 효율적
반복문 없이 배열 연산 처리를 지원
c,c++ 등 다른 언어와 통합 가능
import numpy as np
2. array에 대하여
행렬은 일반적으로 이차원 list를 이용하여 표현한다.
예를 들어 [[2,1],[3,2],[3,-1]]은 $$\begin{pmatrix}
2 & 1\\
3 & 2\\
3 & -1
\end{pmatrix}$$을 표현한다.
그러나 이렇게 하는 경우 다양한 행렬 계산이 어려워진다.
심지어 매우 큰 matrix에 대해 일일이 list로 표현해줄 것인가?
리스트는 심지어 메모리도 비효율적이다. 각각의 값이 모두 메모리 주소를 가지기 때문
3. array의 생성과 특징
np.array( <list>,dtype)로 ndarray라는 객체 생성
리스트와는 다르게 하나의 데이터 타입만 들어감
<list>의 모든 원소가 dtype의 데이터 타입을 가지게 됨
모두 int형인 원소가 모두 float로 바뀐 모습
문자형과 int 원소가 float로 바뀐 모습
리스트처럼 indexing도 가능함
list와는 다른 방식으로 데이터를 저장한다
numpy는 데이터가 차례대로 공간에 바로 투입되어 접근성이 좋고 효율적
list는 주소를 1차적으로 할당하고 주소가 가리키는 곳에 2차적으로 값을 할당함
파이썬에서 1은 고정된 메모리 주소를 가지니까 두 리스트의 1이 가리키는 메모리 주소는 동일함
그러나 array는 자신만의 공간에 할당하므로 1이 가리키는 메모리 주소가 다름
4. shape
shape는 array의 크기나 형태를 나타낸다 , tuple형태로 반환함
(4,) array와 (3,4) array를 나타냈다
(4,)의 한 축 4는 (3,4)에서 한칸 뒤로 밀려 (3,4)로 되면서 새로운 축 3이 생김
rank가 커질수록 이전 rank의 shape 축들이 한 칸씩 밀려나간다
5. rank
array는 rank를 가진다 np.array().ndim으로 구한다
6. size
size는 array 내 데이터의 총 수로 shape 축을 전부 곱하면 된다
7. dtype, nbytes
dtype은 array의 각 원소가 가지는 타입
데이터 타입마다 차지하는 공간의 크기가 다르다
nbytes는 array의 메모리 공간 크기를 구한다
메모리 공간 크기가 작다고해서 무조건 좋은 것은 아니다…
표현방식이 적절하냐가 일단 중요하니까
메모리 공간이 데이터 타입마다 다 다르다는 것을 확인할 수 있다
dtype에는 int8로 지정하면 에러가 나고 np.int8로 np.을 붙여줘야함
'프로그래밍 > Numpy' 카테고리의 다른 글
Numpy 기초 6편 (0) | 2021.11.30 |
---|---|
Numpy 기초 5편 (0) | 2021.11.29 |
Numpy 기초 4편 (0) | 2021.11.29 |
Numpy 기초 3편 (0) | 2021.11.28 |
Numpy 기초 2편 (0) | 2021.11.27 |