강의자료 · 전기공학머신러닝실습

목차

목차

Numpy

import numpy as np

1 선언

# 3x2 형태의 1행렬 선언 
# Input으로 tuple을 받는 것에 주의!
one_matrix = np.ones((3,2)) 
print(one_matrix)
[[1. 1.]
 [1. 1.]
 [1. 1.]]
# 3x2 형태의 0행렬 선언
zero_matrix = np.zeros((3,2))
print(zero_matrix)
[[0. 0.]
 [0. 0.]
 [0. 0.]]
# 3x3 형태의 단위행렬 선언
eye_matrix = np.eye(3)
print(eye_matrix)
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
# 리스트를 이용한 행렬 선언
data_int = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(data_int)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
# Matrix 형태 출력
print(data_int.shape)
(3, 3)
# 원소의 데이터형 출력
print(data_int.dtype)
int64
# 데이터형 변경
data_float = data_int.astype(np.float64)
print(data_float)
print(data_float.dtype)
[[1. 2. 3.]
 [4. 5. 6.]
 [7. 8. 9.]]
float64

2 행렬 연산

# 요소별 곱셈
print(data_int * data_int)
[[ 1  4  9]
 [16 25 36]
 [49 64 81]]
# 상수 덧셈
print(data_int + 3)
[[ 4  5  6]
 [ 7  8  9]
 [10 11 12]]
# 상수 나눗셈
print(data_int / 3)
[[0.33333333 0.66666667 1.        ]
 [1.33333333 1.66666667 2.        ]
 [2.33333333 2.66666667 3.        ]]
x = np.array([[1,2,3],[4,5,6]])
y = np.array([[1,0,-1],[1,1,0]])
print(x)
print(y)
print(y.T)
[[1 2 3]
 [4 5 6]]
[[ 1  0 -1]
 [ 1  1  0]]
[[ 1  1]
 [ 0  1]
 [-1  0]]
print(np.dot(x,y.T))
[[-2  3]
 [-2  9]]
# 연속 정수로 array 생성
data_range = np.arange(10)
print(data_range)
[0 1 2 3 4 5 6 7 8 9]
# index를 이용한 선택
print(data_range[0]) 
0
# slicing
print(data_range[1:4])
[1 2 3]
# slicing을 이용한 수정
data_range[1:4] = 10
print(data_range)
[ 0 10 10 10  4  5  6  7  8  9]
# slicing을 하면 주소(pointer)가 반환됨에 주의!
tmp = data_range[1:4]
tmp[1] = 20
print(data_range)
[ 0 10 20 10  4  5  6  7  8  9]
# 2차원 이상의 경우도 유사하다
print(data_int[2])
print(data_int[:2])
print(data_int[2][0])
print(data_int[2,0])
print(data_int[:2,1:])
data_int[:2,1:] = 0
print(data_int)
[7 8 9]
[[1 2 3]
 [4 5 6]]
7
7
[[2 3]
 [5 6]]
[[1 0 0]
 [4 0 0]
 [7 8 9]]

3 관련함수

import numpy.linalg as lin
mat = np.array([[2,2,0],[-2,1,1],[3,0,1]])
print(lin.inv(mat))
[[ 0.08333333 -0.16666667  0.16666667]
 [ 0.41666667  0.16666667 -0.16666667]
 [-0.25        0.5         0.5       ]]
print(lin.det(mat))
12.0
matA = np.array([[3,2,1],[1,-1,3],[5,4,-2]])
matB = np.array([7,3,1])
print(lin.solve(matA, matB))
[-3.  6.  4.]

4 실습 (Assignment 3)