본문 바로가기

기계학습

1.7 NumPy 라이브러리로 시작하기

Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from numpy import *
>>> random.rand(4,4)
array([[ 0.07808334,  0.73126929,  0.02525353,  0.4818315 ],
       [ 0.84526131,  0.91140046,  0.90551008,  0.84454652],
       [ 0.56635775,  0.25566912,  0.02107707,  0.52432461],
       [ 0.43077348,  0.791899  ,  0.53299986,  0.49516245]])
>>> type(random.rand(4,4))
<type 'numpy.ndarray'>

numpy 속 random 모듈의 rand 함수를 통해서 배열을 생성하면, 무작위 값이 들어간 2차원 배열을 만들어준다.

이 배열을 matrix (행렬) 로 바꿔주기 위해 mat 함수를 이용할 수 있다.

>>> matrix = mat(random.rand(4,4))
>>> matrix
matrix([[ 0.57365894,  0.17594804,  0.60455411,  0.53914016],
        [ 0.41420776,  0.49773051,  0.83051092,  0.79898418],
        [ 0.01895108,  0.78205264,  0.29031819,  0.34645736],
        [ 0.59907321,  0.76374075,  0.61727888,  0.67955941]])

numpy의 matrix 에서는 I (i 대문자) 연산자를 통해 역행렬을 구할 수 있다.

>>> matrix.I
matrix([[  2.34331496,  -2.58455899,  -0.06834979,   1.21450284],
        [  2.76986415,  -2.27771315,   3.25808479,  -1.18058211],
        [ 17.07343445,  -6.31494458,  12.25889716, -12.37068953],
        [-20.68744199,  10.57450493, -14.73681887,  12.96464716]])


역행렬이란,
출처: http://mathbang.net/567  --> 모든 수학 관련 내용은 mathbang.net 을 참고하고 있습니다.

숫자에는 역수라는게 있다. 1/3 의 역수는 3/1 처럼, 분모와 분자를 뒤집은 형태이다.
고등학교 수학까지 배우게 되면, 역수를 좀 다르게  "계산 결과가 곱셈에 대한 항등원인 1이 나오게 하는 수" 라고 표현할 수 있다.




계속