전체 보기
1️⃣

[밑바닥부터 시작하는 딥러닝] Chapter 1. Numpy, Matplotlib

작성일자
2022/10/02
태그
SUB PAGE
프로젝트
밑바닥 딥러닝
책 종류
1 more property
목차

1. 넘파이

외부 라이브러리 넘파이 가져오기
import numpy as np
넘파이 배열 생성 → np.array() 메서드
x=np.array([1.0, 2.0, 3.0]) print(x) # [1. 2. 3. ] print(type(x))
Python
복사
인자: 리스트
ex) [1.0, 2.0, 3.0]
반환값: 넘파이의 특수 배열(numpy.ndarray)
ex) [1. 2. 3. ]
넘파이 산술 연산 → 배열끼리 원소별 연산 (단 원소 수 같아야함)
x=np.array([1.0, 2.0, 3.0]) y=np.array([2.0, 4.0, 6.0])] print(x+y) # array([3., 6., 9.]) print(x-y) print(x*y) print(x/y)
Python
복사
넘파이 N차원 배열 → 형상이 같은 배열끼리 원소별 연산
2차원 배열(행렬) 작성
A=np.array([1,2], [3,4]) print(A) # [[1 2] [3 4]] print(A.shape) # (2, 2) print(A.dtype) # dtype('int64')
Python
복사
2차원 배열(행렬) 산술 연산 → 형상이 같은 배열끼리 원소별 연산 가능
B=np.array([3,0], [0,6]) print(A+B) # array([[4, 2], [3, 10]]) print(A*B) # array([[3, 0], [0, 24]])
Python
복사
브로드캐스트 → 형상이 다른 배열끼리 원소별 연산
예시 1) 배열과 수치(스칼라 값)의 연산 → 원소별로 한 번씩 수치와 연산
x=np.array([1.0, 2.0, 3.0]) print(x/2.0) # array([0.5, 1., 1.5])
Python
복사
원리) 스칼라값이 원소 3개인 배열로 확대된 후 연산이 이뤄진 것임
[1. 2. 3.] / [2. 2. 2.]
예시 2) 형상이 다른 배열끼리 계산 → 형상 맞게 배열을 변형한 후 원소별 연산
A=np.array([[1,2], [3,4]]) # [[1 2] [3 4]] B=np.array([10,20]) # [[10 20] [10 20]]로 변형됨 print(A*B) # array([[10, 40], [30, 80]])
Python
복사
1차원 배열이 2차원 배열과 같은 형상으로 변형됨
원소 접근
인덱스 → 각 원소에 접근
X=np.array([[51, 55], [14, 19], [0, 4]]) print(X) # [[51 55] [14 19] [0 4]] print(X[0]) # 0행 -> array([51, 55])) print(X[0][1]) # (0,1)위치의 원소 -> 55
Python
복사
for문 → 각 원소에 접근
for row in X: print(row) # [51 55] # [14 19] # [0 4]
Python
복사
평탄화, 인덱스를 배열로 지정 → 한 번에 여러 원소에 접근
X=X.flatten() # X를 1차원 배열로 평탄화 print(X) # [51 55 14 19 0 4] print( X[np.array([0, 2, 4])] ) # 인덱스가 0,2,4인 원소 얻기-> array([51, 14, 0])
Python
복사
부등호 연산 → 특정 조건 만족하는 원소만 얻기
print( X>15 ) # array( [True, True, False, True, False, False], dtype=bool) print( [X>15] ) # array( [51, 55, 19] )
Python
복사

2. matplotlib

단순한 그래프 그리기 → 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) # x의 각 원소에 sin함수 적용해 변수 y에 할당 # 그래프 그리기 plt.plot(x,y) # x, y를 인수로 그래프 그림 plt.show() # 그래프를화면에 출력함
Python
복사
pyplot의 기능 → cos 함수 추가
import numpy as np import matplotlib.pyplot as plt # 데이터 준비 x=np.arange(0, 6, 0.1) # 0에서 6까지 0.1 간격으로 생성) y1=np.sin(x) # x의 각 원소에 sin함수 적용해 변수 y1에 할당 y2=np.cos(x) # 그래프 그리기 plt.plot(x, y1, label="sin") # x, y1를 인수로 그래프 그림 plt.plot(x, y2, linestyle="--", label="cos" # cos 함수는 점선으로 그림 plt.xlabel("x") # x축 이름 plt.ylabel("y") # y축 이름 plt.title('sin과 cos') # 제목 plt.legend() plt.show()
Python
복사
이미지 표시하기