넘파이의 데이터 구조, 그리고 용어 잘 봐두기.
1 넘파이는?
- http://www.numpy.org
- Numerical Python
- 고성능 과학연산을 위한 패키지로 데이터분석, 머신러닝등에 필수로 사용된다.
- 강력한 다차원 배열(array) 지원
- 벡터 연산 지원
- 다양한 수학관련 함수
- 선형대수, 난수 생성, 푸리에 변환 기능 지원
1.1 넘파이의 데이터 구조
- 스칼라 (Scalar)
- 벡터 (Vector)
- 여러개의 숫자들을 특정한 순서대로 모아놓은 데이터 모음(데이터 레코드)
- 1D Array (1차원 배열)
- 행렬 (Matrix)
- 벡터들을 모아놓은 데이터 집합
- 2D Array (2차원 배열)
- 텐서 (Tensor)
- 같은 크기의 행렬들(텐서들)을 모아놓은 데이터 집합
- ND Array (다차원 배열)
1.1.1 벡터는?
- 크기
- 방향 : 방향이 있다는 것은 결국 순서가 있다. 같은 숫자가 들어가 있어도 다르다.
[1, 2, 3]
---------> 축
['사과', '귤', '배']
[
[3, 2, 1], ^
[5, 1, 3], | 축
[3, 7, 2], |
]
---------> 축
1.2 넘파이 용어
- 축 (axis)
- 값들의 나열 방향
- 하나의 축(axis)는 하나의 범주(Category)이다.
- 랭크(rank)
- 형태/형상(shape)
- 크기(size)
1.2.1 예시
[
[
[0, 0, 0],
[0, 0, 0]
],
[
[0, 0, 0],
[0, 0, 0]
]
]
밖에 있는 것부터 센다.
2, 2, 3
총 데이터 갯수는 12개
축이 헷갈릴 수 있다. 특히 3차원이상
2 넘파이 배열 (ndarray)
- Numpy에서 제공하는 N 차원 배열 객체
- 같은 타입의 값들만 가질 수 있다.
- 빠르고 메모리를 효율적으로 사용하며 벡터 연산과 브로드캐스팅 기능을 제공한다.
2.1 차원 (dimension)
- Vector에서 차원 : 원소의 개수
- 넘파이 배열에서 차원 : 축의 개수
2.2 넘파이 배열 데이터 타입
- 원소들의 데이터 타입
- ndarray 는 같은 타입의 데이터만 모아서 관리한다.
- 배열 생성시 dtype 속성을 이용해 데이터 타입 설정 가능
- ndarray.dtype 속성을 이용해 조회
- ndarray.astype(데이터타입)
- 데이터타입 변환하는 메소드
- 변환한 새로운 ndarray객체를 반환
- 원본이 바뀌지는 않는다. 변수에 넣어서 사용해야함.
- 타입 지정
- 문자열로 지정
- numpy에 각 타입이 변수로 제공됨
- numpy.int, numpy.int64, numpy.float