매트릭스(Matrix)는 2차원 형태를 가지고 있습니다.
앞서 살펴보았던 벡터들로 이루어져 있다고 볼 수도 있습니다.
이전 벡터 내용은 다음 링크를 참고해주세요 :)
매트릭스(Matrix)는 행과 열, 두 개의 축을 가지는 2차원 행렬을 의미합니다.
이번 포스팅에서는
매트릭스의 생성과 형태를 살펴보도록 하겠습니다.
그리고 형태를 원하는 대로 변환하는 것까지 해보겠습니다.
*참고
### 는 출력된 값을 보여줍니다.
1. 매트릭스의 생성
import numpy as np #넘파이 가져오기.
m_array = [[1,2,3], [1,2,3], [1,2,3]]
m_array
### [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
다음과 같이 매트릭스를 생성할 수 있습니다.
기존 벡터에서 한 차원이 늘어난 것을 볼 수 있습니다.
벡터들이 -> [ [벡터], [벡터], [벡터] ]로 되어 있는 것을 보실 수 있습니다.
이전 벡터 생성때 처럼, array 함수에 dtype을 설정하면 원하는 데이터 타입을 지정해 줄 수 있습니다.
#1.1 매트릭스 타입 지정 생성
np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3]], dtype=int)
###array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
#2. 매트릭스 형태
np.array(m_array).shape
### (3, 3) #앞에가 행, 뒤에가열. - 그리고 튜플 형태로 출력된다.
그리고 shape 을 활용하여 매트릭스의 형태를 볼 수 있습니다.
매트릭스(Matrix)의 힘은
굉장히 많은 수를 다룰 수 있다는 것입니다.
다음과 같이 매트릭스를 생성할 수도 있습니다.
2. 매트릭스(Matrix) 형태 변환
매트릭스 형태 변환은 연산을 하거나, 추후 ML/DL을 할 때 유용하게 사용됩니다.
매트릭스 형태 변환은 reshape() 함수를 통해서 할 수 있습니다.
re_matrix = [[1,2,3,4],[1,2,3,4]]
np.array(re_matrix).shape
### (2,4)
np.array(re_matrix).reshape(8,) #형태 변환을 해준다.
### array([1, 2, 3, 4, 1, 2, 3, 4])
기존 (2,4)에서 다음과 같이 (8,) 형태로 변화된 것을 볼 수 있습니다.
이렇게 형태를 알고 있을 경우에는 지정할 수 있지만,
모르는 경우에는 어떻게 할까요?
이 경우에는 -1을 사용하여 할 수 있습니다.
np.array(re_matrix).reshape(2,4)
"""array([[1, 2, 3, 4],
[1, 2, 3, 4]])"""
np.array(re_matrix).reshape(2,-1) #-1로 설정하게 되면 size 기반으로 row 개수를 선정하게 됩니다.
"""array([[1, 2, 3, 4],
[1, 2, 3, 4]])"""
np.array(re_matrix).reshape(-1,2) #두개의 숫자를 바꿔보게 되면
"""array([[1, 2],
[3, 4],
[1, 2],
[3, 4]])"""
np.array(re_matrix).reshape(2,2,2) #다음과 같이 차원을 늘려주게 되면
"""array([[[1, 2],
[3, 4]],
[[1, 2],
[3, 4]]])"""
다음과 같이 row 나 column을 넣어주고 나머지에 -1을 넣어주게 되면 자동으로 계산해서 채워지게 됩니다.
매트릭스 개념과 형태 변환은 중요하니 꼭 기억해주시면 좋을 것 같습니다.
