반응형
SMALL
Numpy는 행렬과 관련된 여러 편리한 연산과 기능들을 제공합니다. 행렬의 곱, 전치 행렬, 역행렬 등을 간편하게 구할 수 있습니다.
이번 시간엔 Numpy의 함수를 이용해서 행렬의 여러 연산들을 적용해봅시다.
행렬의 연산과 관련된 함수들
- np.transpose(x) / (ndarray)x.T : 배열 x의 전치 행렬을 나타낸다.
- np.dot(x, y) : 배열 x와 y의 행렬곱을 나타낸다.
- (ndarray)x * (ndarray)y : 행렬x와 y의 요소별 곱을 나타낸다.
- np.linalg.inv(x) : 행렬 x의 역행렬을 배열로 나타낸다.
import numpy as np
array1 = np.array([[1,2,3], [4,5,6], [7,8,9]])
#array1의 전치 행렬을 구해보자
transposed = np.transpose(array1) # transposed = array1.T
print(transposed, '는 array1을 전치한 행렬입니다.')
#array1과 array1의 전치 행렬의 행렬곱을 구해보자
power = np.dot(array1, transposed)
print(power, '는 array1과 array1의 전치 행렬을 행렬곱한 것입니다.')
#array1과 array1의 전치 행렬의 요소별 곱을 구해보자.
elementwise_prod = array1 * transposed
print(elementwise_prod, '는 array1과 array1의 전치행렬을 요소별로 곱한 행렬입니다.')
array2 = np.array([[2,3],[1,7]])
# array2의 역행렬을 만들어보자.
inverse_array2 = np.linalg.inv(array2)
print(inverse_array2, '는 array2의 역행렬입니다.')
# array2와 array2의 역행렬을 곱한 행렬을 만들어보자.
producted = np.dot(array2, inverse_array2)
print(producted, '는 array2와 array2의 역행렬을 곱한 행렬입니다.')
[[1 4 7]
[2 5 8]
[3 6 9]] 는 array1을 전치한 행렬입니다.
[[ 14 32 50]
[ 32 77 122]
[ 50 122 194]] 는 array1과 array1의 전치 행렬을 행렬곱한 것입니다.
[[ 1 8 21]
[ 8 25 48]
[21 48 81]] 는 array1과 array1의 전치행렬을 요소별로 곱한 행렬입니다.
[[ 0.63636364 -0.27272727]
[-0.09090909 0.18181818]] 는 array2의 역행렬입니다.
[[ 1.00000000e+00 5.55111512e-17]
[-2.77555756e-17 1.00000000e+00]] 는 array2와 array2의 역행렬을 곱한 행렬입니다.
반응형
LIST
'Machine, Deep Learning > Machine, Deep Learning 실습' 카테고리의 다른 글
Pandas 데이터 추출 및 추가 (0) | 2019.06.24 |
---|---|
Pandas 선언 (0) | 2019.06.24 |
Numpy 배열의 통계적 정보 나타내기 (0) | 2019.06.24 |
Numpy 배열의 특정요소 추출하기 (0) | 2019.06.24 |
Numpy 배열 생성하기 (0) | 2019.06.24 |