Tensor 이해하기
- Scalar : 0차원으로 숫자가 하나만 있는 경우
- Vector : 1차원으로 숫자의 배열인 경우
- Matrix : 2차원으로 행과 열을 가진 배열인 경우
- Tensor : 다차원으로 Vector와 Matrix 역시 Tensor라고 부를 수 있다
0 차원
- numpy array는 1 또는 5, 10과 같이 숫자 데이터를 array화 해줄 수 있다
- scalar로 들어갔을 때는 shape가 아무것도 없는 것으로 나온다
- ndim은 몇 차원인지 반환하는 함수로 해당 배열의 차원인 0이 출력된다
1 차원
숫자가 10과 같이 하나만 들어간다고 해도 []리스트를 한번 씌우게 되면 차원이 생긴다. 이때는 1차원이 되는데 numpy에서 shape를 표현할 때 (1)이 아닌 (1, )로 표현해줘야 한다. arr([1, 2, 3])은 3개가 있다고 3차원이 아니라 1차원이다. 그래서 해당 배열의 shape가 (3, )으로 출력되는 것은 3차원이 아니라 값이 3개 있다는 것이다 (1차원에 값 3개라는 의미)
2 차원
대괄호를 추가적으로 쓰이면 차원이 추가적으로 하나가 생긴다. (3, 3)이라는 shape를 보면 차원이 2개가 있고 각 차원마다 각각 3개의 값이 있다고 생각하면 된다. 참고로 0차원 숫자에 대괄호를 2번 씌우면 두 개의 차원이 된다.
다차원
Numpy Basic
data type
dtype을 통해 array의 데이터 타입을 볼 수 있다.
.astype()을 통해 data type을 변환할 수 있다.
len()
len(arr.shape)를 통해 차원의 개수를 확인할 수 있다. 그리고 ndim을 통해서도 차원 수를 return할 수 있다.
size 확인
Reshape
배열.reshape(차원)으로 배열의 차원을 변경해준다.
reshape(-1)으로 하면 1차원 배열을 반환한다.
reshape(-1, n)이면 열이 n개인 배열로 변환되어 반환된다.
Random array 생성
3차원으로 늘리기
Ravel
이 함수는 다차원 배열을 1차원 배열로 바꾸는 것이다.
* layer, flatten과 같은 기능이다.
np.expand_dims()
안의 값을 유지하면서 차원의 수를 늘리고 싶을 때 사용한다
zeros & ones
0으로 채워진 numpy array를 만들 수 있다.
Index
Slicing
Boolean Indexing
Broadcast
broadcast는 연산하려는 서로 다른 두 개의 행렬의 shape가 같지 않고, 한 쪽의 차원이라도 같거나 값의 개수가 한 개일 때 이를 여러 복사를 하여 연산한다.
Math Function
'Study > Machine Learning' 카테고리의 다른 글
[Tensorflow 2.0] 각 Layer별 역할 개념 및 파라미터 (0) | 2021.01.11 |
---|---|
[Tensorflow 2.0] dataset(MNIST) (0) | 2021.01.11 |
[Tensorflow 2.0] 기초 사용법 (0) | 2021.01.11 |
[Tensorflow] 시각화 기초 (이미지) (0) | 2021.01.11 |
[Tensorflow] 시각화 기초 (그래프) (0) | 2021.01.11 |
댓글