본문 바로가기
📁study archive/ML DL

딥러닝1차시

by Hush 2022. 8. 28.

Numpy

numpy는 외부 라이브러리로, import문도 사용해야하고 pip install도 해야한다.

배열 생성

np.array()함수를 사용한다.

리스트를 인수로 받아 라이브러리가 제공하는 numpy.ndarray를 반환한다.

 

numpy배열의 산술연산

원소 수가 같을 때 산술 연산은 각 원소에 대해 행해진다.

특히 곱셈의 경우 행렬곱이 아닌 element-wise product가 행해진다는 점에 주의하자.

또한 브로드캐스트라는 개념이 있는데, 이는 연산의 대상이 되는 두 배열의 사이즈가 다를 때, 자동으로 한쪽의 사이즈를 확장하여 연산을 수행한다.

주로 쓰는 방식은 배열*스칼라의 경우 스칼라가 모든 배열에 곱해진 결과를 반환한다.

 

numpy배열의 논리연산

numpy배열에 논리연산을 수행하면 배열의 각 원소에 대해 논리연산을 진행한 결과를 배열로 반환한다.

A = np.array([1,2,3,4,5])
print(A % 2 == 0)
//[False, True, False, True, False]

numpy의 N차원 배열

numpy를 활용하여 다차원 배열의 정의와 연산도 쉽게 할 수 있다.

배열의형상은 shape멤버로, 원소의 자료형은 dtype 멤버로 알 수 있다.

 

원소 접근

기본적으로 인덱스를 통해 원소에 접근할 수 있다.

이때 인덱스에 정수가 아닌, numpy 배열을 전달할 경우, 전달받은 배열의 요소를 인덱스값으로 하는 원소들만 추출하여 돌려준다.

A[np.array([0,2,4])] # 배열A에서 인덱스가 0, 2, 4인 원소만 추출

 

matplotlib

단순한 그래프를 그리거나 이미지를 표시할 수 있는 표준 라이브러리이다.

 

단순한 그래프 그리기, 이미지 그리기: pyplot

pyplot 모듈을 이용해 그래프를 그릴 수 있다.

예시로 y=sin(x) 그래프를 그려보겠다.

x를 numpy배열로 생성하고 y는 sin(x)로 지정한다.

plt.plot(x,y)로 x와 y의 그래프를 생성하고

이를 plt.show() 함수로 출력한다.

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 7, 0.1) # 0에서 7까지 0.1간격의 배열을 생성
y = np.sin(x)

plt.plot(x, y)
plt.show()

plt.plot을 여러번 선언하여 여러 그래프를 동시에 그릴 수 있고,

그래프 이름, 축 이름, 값 이름, 선 스타일 등 다양한 값을 설정할 수 있다.

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 7, 0.1) # 0에서 7까지 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()

 

또한 다음과 같이 이미지를 그릴 수도 있다.

import matplotlib.pyplot as plt
from matplotlib.image import imread

img = imread('test.jpg') # 이미지 읽어오기

plt.imshow(img)
plt.show()

'📁study archive > ML DL' 카테고리의 다른 글

딥러닝2차시  (0) 2022.08.28
파이썬 텐서플로우, 머신러닝 기초  (0) 2022.03.27

댓글