딥러닝 / 넘파이 원소 접근, Matplotlib 로 그래프 그리기
4 넘파이(numpy) 원소 접근 - p.40
numpy배열 안에 요소들의 대한 접근은 numpy를 이용하지 않았을때보다 훨씬 간다한게 구현할 수 있음.
예제1. 아래의 리스트에서 숫자 55를 출력하시오.
a = [51,55,14,19,0,4]
a[1]
예제2. 아래의 리스트에서 숫자 15 이상인 숫자들만 출력하시오.
a = [51,55,14,19,0,4]
list(filter((lambda x : x > 15), a))
예제3. 위의 결과를 numpy로 구현하시오.
a2 = np.array(a)
list(a2[a2>=15])
numpy를 이용하면 loop문을 최소화 할 수 있음.
예제4. 아래의 행렬식을 만들고 아래의 행렬 요소에서 15이상인 것만 출력하시오.
a3 = [[51,55],[14,19],[0,4]]
list(i for a in a3 for i in a if i >15)
예제5. 위의 결과를 numpy로 간단하게 구현하시오.
a = np.array([51,55,14,19,0,4]).reshape(3,2)
list(a[a>15])
문제11. 아래의 행렬을 만들고 아래의 행렬에서 3 이상인 것만 출력하시오.(numpy 이용)
a = np.array([5.1, 3.5, 1.4, 0.2,
4.9, 3.0, 1.4, 0.2,
4.7, 3.2, 1.3, 0.2,
4.6, 3.1, 1.5, 0.2]).reshape(4,4)
list(a[a>=3])
5 Matplotlib 로 그래프 그리기
딥러닝 실험에서는 그래프 그리기와 데이터 시각화가 중요합니다.
matplotlib는 그래프를 그리기 위한 라이브러리 입니다.
matplotlib를 이용하면 그래프 그리기가 쉬워집니다.
신경망에서 사용하는 그래프는 주로 라인 그래프 입니다.
정확도 점점 올라가는지 아니면 에러(오차)가 점점 떨어지는지를 확인할 때 유용합니다.
+) 현재 아나콘다 snowdeer_env1 가상환경에 matplotlib 패키지가 없음. 코드를 치면 아래와 같은 에러메시지가 뜸.
ModuleNotFoundError: No module named 'matplotlib'
프롬프트 창을 열어 모듈 설치를 해주면 됨.
(base) C:\Users\ejcej>activate snowdeer_env1
(snowdeer_env1) C:\Users\ejcej>pip install matplotlib
추가로 selenium, bs4, pandas 모듈까지 다 설치해주었음.
예제1. 파이썬으로 산포도 그래프를 그리는 방법
import numpy as np
import matplotlib.pyplot as plt
x = np.array([0,1,2,3,4,5,6,7,8,9])
y = np.array([9,8,7,9,8,3,2,4,3,4])
plt.scatter(x,y, color = 'red', s = 80)
plt.show()
예제2. 위의 그래프에 제목을 "신경망 오차 그래프"라고 하시오.
import numpy as np
import matplotlib.pyplot as plt
x = np.array([0,1,2,3,4,5,6,7,8,9])
y = np.array([9,8,7,9,8,3,2,4,3,4])
plt.rc('font', family='Malgun Gothic')
plt.scatter(x,y, color = 'red', s = 80)
plt.title("신경망 오차 그래프")
plt.show()
문제12. 위의 그래프를 산포도 그래프가 아니라 라인 그래프로 변경해서 그리시오.
import numpy as np
import matplotlib.pyplot as plt
x = np.array([0,1,2,3,4,5,6,7,8,9])
y = np.array([9,8,7,9,8,3,2,4,3,4])
plt.rc('font', family='Malgun Gothic')
plt.scatter(x,y, color = 'red', s = 80)
plt.plot(x,y)
plt.title("신경망 오차 그래프")
plt.show()
1장 내용 정리
1. 신경망 구현을 편하게 하기 위해서는 numpy를 사용할 수 있어야 합니다.
2. numpy는 행렬 연산을 쉽고 빠르게 해주는 모듈입니다.
3. 신경망에서는 다차원 행렬 계산이 일어납니다. 이 다차원 행렬계산을 numpy가 수월하게 해줍니다.
4. 신경망 학습 결과를 시각화하기 위해서는 matplotlib를 사용합니다.