본문 바로가기
Machine learning/Machine learning 강의

머신 러닝 기본#5 - numpy로 행렬 연산하기

by grey-hat hacker 2021. 1. 19.
728x90

먼저 3X3 A행렬과 B행렬을 생성하였다.

>>> import numpy as np

>>> A = np.array([[1,-1,2],[3,2,2],[4,1,2]])
>>> B = np.random.rand(3,3)
>>> A
array([[ 1, -1,  2],
       [ 3,  2,  2],
       [ 4,  1,  2]])
>>> B
array([[0.00178928, 0.62103838, 0.7618525 ],
       [0.42017644, 0.06346574, 0.4674196 ],
       [0.43968531, 0.08669601, 0.53800129]])

 

A 행렬과 B 행렬 덧셈을 하였다. 

>>> A + B
array([[ 1.00178928, -0.37896162,  2.7618525 ],
       [ 3.42017644,  2.06346574,  2.4674196 ],
       [ 4.43968531,  1.08669601,  2.53800129]])

 

스칼라 곱을 해보았다. 

>>> 5 * A
array([[ 5, -5, 10],
       [15, 10, 10],
       [20,  5, 10]])

 

행렬과 행렬 곱셈을 해보았다.  // np.dot(A, B), A @ B 같은 결과 값이 나온다. 

>>> np.dot(A, B)
array([[0.46098347, 0.73096466, 1.37043547],
       [1.72509135, 2.16343863, 4.29639927],
       [1.30670419, 2.72101126, 4.59083217]])
       
>>> A @ B
array([[0.46098347, 0.73096466, 1.37043547],
       [1.72509135, 2.16343863, 4.29639927],
       [1.30670419, 2.72101126, 4.59083217]])

 

행렬의 복합 연산을 수행하였다. 

>>> A @ B + (A + 2 * B)
array([[1.46456204, 0.97304141, 4.89414046],
       [5.56544422, 4.29037011, 7.23123848],
       [6.18607482, 3.89440329, 7.66683475]])
728x90
반응형

댓글