밑바닥부터 시작하는 딥러닝 1권을 읽고 정리한 내용입니다.
1장. 파이썬
import numpy as np
>>> import numpy as np
>>> x = np.array([1.0, 2.0, 3.0])
>>> print(x)
[1. 2. 3.]
>>> type(x)
<class 'numpy.ndarray'>
>>> x = np.array([1.0, 2.0, 3.0])
>>> y = np.array([2.0, 4.0, 6.0])
>>> x + y
array([3., 6., 9.])
>>> x - y
array([-1., -2., -3.])
>>> x * y
array([ 2., 8., 18.])
>>> x / y
array([0.5, 0.5, 0.5])
>>> x / 2.0
array([0.5, 1. , 1.5])
>>> A = np.array([[1,2],[3,4]])
>>> print(A)
[[1 2]
[3 4]]
>>> A.shape
(2, 2)
>>> A.dtype
dtype('int64')
>>> B = np.array([[3,0],[0,6]])
>>> A + B
array([[ 4, 2],
[ 3, 10]])
>>> A * B
array([[ 3, 0],
[ 0, 24]])
>>> A * 10
array([[10, 20],
[30, 40]])
>>> A = np.array([[1,2],[3,4]])
>>> B = np.array([10,20])
>>> A * B
array([[10, 40],
[30, 80]])
>>> X = np.array([[51,55], [14,19], [0,4]])
>>> print(X)
[[51 55]
[14 19]
[ 0 4]]
>>> X[0]
array([51, 55])
>>> X[0][1]
55
>>> for r in X: # 반복문으로도 접근할 수 있다
... print(r)
...
[51 55]
[14 19]
[0 4]
넘파이는 지금까지의 방법 외에도, 인덱스를 배열로 지정해 한 번에 여러 원소에 접근할 수 있다.
>>> X = X.flatten() # X를 1차원 배열로 평탄화
>>> print(X)
[51 55 14 19 0 4]
>>> X[np.array([0,2,4])] # 인덱스 0, 2, 4의 원소
array([51, 14, 0])
이 기법을 통해 특정 조건에 만족하는 원소만 추출할 수 있다.
>>> X > 15 # 넘파이 배열에 부등호 연산자를 사용한 결과는 bool 타입 배열
array([ True, True, False, True, False, False])
>>> X[X>15]
array([51, 55, 19])
딥러닝 실험에서 중요한 그래프 그리기와 데이터 시각화 라이브러리.
단순한 그래프 그리기 (sin 함수)
>>> import numpy as np
>>> import matplotlib.pyplot as plt
# 데이터 준비
>>> x = np.arange(0,6,0.1) # 0에서 6까지 0.1의 간격으로 생성
>>> y = np.sin(x)
# 그래프 그리기
>>> plt.plot(x,y)
[<matplotlib.lines.Line2D object at 0x7f91b4f70190>]
>>> plt.show
<function show at 0x7f91b4de2790>
>>> plt.show()
pyplot의 기능: cos 함수를 추가로 그려본다. 또한 제목과 각 축의 이름 표시 등 pyploy의 다른 기능도 사용.
import numpy as np
import matplotlib.pyplot as plt
# 데이터 준비
x = np.arange(0, 6, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)
# 그래프 그리기
plt.plot(x, y1, label="sin")
plt.plot(x, y2, linestyle="--", label="cos") # cos함수는 점선으로 그리기
plt.xlabel("x") # x축 이름
plt.ylabel("y") # y축 이름
plt.title('sin & cos') # 제목
plt.legend()
plt.show()
이미지 표시하기 : pyplot의 imshow()메서드로 이미지를 표시할 수 있고, 읽을 때는 matplotlib.image 모듈의 imread() 메서드를 이용한다.
import matplotlib.pyplot as plt
from matplotlib.image import imread
img = imread('tree.png') # 현재 디렉토리에 있다고 가정, 경로 설정해주면 됨
plt.imshow(img)
plt.show()