๐Ÿ“study archive/ML DL

๋”ฅ๋Ÿฌ๋‹1์ฐจ์‹œ

Hush 2022. 8. 28. 17:15

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()