์ƒˆ์†Œ์‹

IT & Security/AI

[์ธ๊ณต์ง€๋Šฅ] Numpy (๋„˜ํŒŒ์ด)

  • -
๋ฐ˜์‘ํ˜•

https://techscript24.com/how-to-start-with-numpy-for-beginners/

 

Numpy

ํŒŒ์ด์ฌ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ๋ถ„์„ ํ™˜๊ฒฝ์—์„œ NumPy1๋Š” ํ–‰๋ ฌ ์—ฐ์‚ฐ์„ ์œ„ํ•œ ํ•ต์‹ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

NumPy๋Š” “Numerical Python“์˜ ์•ฝ์ž๋กœ ๋Œ€๊ทœ๋ชจ ๋‹ค์ฐจ์› ๋ฐฐ์—ด๊ณผ ํ–‰๋ ฌ ์—ฐ์‚ฐ์— ํ•„์š”ํ•œ ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

ํŠนํžˆ ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ์— ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ํšจ์œจ์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

 

ํŒŒ์ด์ฌ list ๊ฐ์ฒด๋ฅผ ๊ฐœ์„ ํ•œ NumPy์˜ ndarray ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜์ž!

 

NumPy๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ–๋Š”๋‹ค.

  • ๊ฐ•๋ ฅํ•œ N ์ฐจ์› ๋ฐฐ์—ด ๊ฐ์ฒด
  • ์ •๊ตํ•œ ๋ธŒ๋กœ๋“œ์ผ€์ŠคํŒ…(Broadcast) ๊ธฐ๋Šฅ
  • C/C ++ ๋ฐ ํฌํŠธ๋ž€ ์ฝ”๋“œ ํ†ตํ•ฉ ๋„๊ตฌ
  • ์œ ์šฉํ•œ ์„ ํ˜• ๋Œ€์ˆ˜ํ•™, ํ‘ธ๋ฆฌ์— ๋ณ€ํ™˜ ๋ฐ ๋‚œ์ˆ˜ ๊ธฐ๋Šฅ
  • ๋ฒ”์šฉ์  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋‹ค์ฐจ์› ์ปจํ…Œ์ด๋„ˆ
๋ณธ ๋ฌธ์„œ๋Š” cs231n ๊ฐ•์ขŒ์˜ Python Numpy Tutorial ๋ฌธ์„œ์™€ DataCamp์˜ Python For Data Science Cheat Sheet NumPy Basics ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

์•„๋ž˜ ๋‘ ์ž๋ฃŒ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ดํ•ด๊ฐ€ ์กฐ๊ธˆ ๋” ์‰ฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

taewan.kim/post/numpy_sum_axis/

 

Numpy์—์„œ np.sum ํ•จ์ˆ˜์˜ axis ์ดํ•ด

Numpy์˜ sum์€ ์œ ์šฉํ•œ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฒ˜์Œ sum ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ axis ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ํ˜ผ๋™๋˜๋Š” ๊ฒƒ์ด ์‚ฌ์‚ด์ž…๋‹ˆ๋‹ค. axis์˜ ์˜๋ฏธ๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

taewan.kim

taewan.kim/post/numpy_cheat_sheet/

 

ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธ์Šค Cheat Sheet: NumPy ๊ธฐ์ดˆ, ๊ธฐ๋ณธ

NumPy ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋ฒ•, ๊ฐ€์ด๋“œ, ๋ฌธ์„œ, ๋ฉ”๋‰ด์–ผ, ๊ธฐ๋ณธ ๋ฌธ์„œ

taewan.kim

 

1. numpy ํŒจํ‚ค์ง€

numpy๋Š” ๊ณผํ•™ ๊ณ„์‚ฐ์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ์„œ ๋‹ค์ฐจ์› ๋ฐฐ์—ด์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.

numpy๋Š” pip์„ ์‚ฌ์šฉํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ„๋‹จํžˆ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

$ pip install numpy

$ pip install numpy 

 

2. numpy ๋ฐฐ์—ด

numpy์—์„œ ๋ฐฐ์—ด์€ ๋™์ผํ•œ ํƒ€์ž…์˜ ๊ฐ’๋“ค์„ ๊ฐ€์ง€๋ฉฐ, ๋ฐฐ์—ด์˜ ์ฐจ์›์„ rank ๋ผ ํ•˜๊ณ , ๊ฐ ์ฐจ์›์˜ ํฌ๊ธฐ๋ฅผ ํŠœํ”Œ๋กœ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์„ shape ๋ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ–‰์ด 2์ด๊ณ  ์—ด์ด 3์ธ 2์ฐจ์› ๋ฐฐ์—ด์—์„œ rank๋Š” 2 ์ด๊ณ , shape๋Š” (2, 3) ์ด ๋œ๋‹ค.

 

NumPy ๋ฐฐ์—ด์€ <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ™์ด ๋‹ค์ฐจ์› ๋ฐฐ์—ด์„ ์ง€์›ํ•œ๋‹ค. NumPy ๋ฐฐ์—ด์˜ ๊ตฌ์กฐ๋Š” “Shape“์œผ๋กœ ํ‘œํ˜„๋œ๋‹ค.

Shape์€ ๋ฐฐ์—ด์˜ ๊ตฌ์กฐ๋ฅผ ํŒŒ์ด์ฌ ํŠœํ”Œ ์ž๋ฃŒํ˜•์„ ์ด์šฉํ•˜์—ฌ ์ •์˜ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 28X28 ์ปฌ๋Ÿฌ ์‚ฌ์ง„์€ ๋†’์ด๊ฐ€ 28, ํญ์ด 28, ๊ฐ ํ”ฝ์…€์€ 3๊ฐœ ์ฑ„๋„(RGB)๋กœ ๊ตฌ์„ฑ๋œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰ ์ปฌ๋Ÿฌ ์‚ฌ์ง„ ๋ฐ์ดํ„ฐ๋Š” Shaep์ด (28, 28, 3)์ธ 3์ฐจ์› ๋ฐฐ์—ด์ด๋‹ค. ๋‹ค์ฐจ์› ๋ฐฐ์—ด์€ ์ž…์ฒด์ ์ธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๋ฐ์ดํ„ฐ์˜ ์ฐจ์›์€ ์—ฌ๋Ÿฌ ๊ฐˆ๋ž˜์˜ ๋ฐ์ดํ„ฐ ๋ฐฉํ–ฅ์„ ๊ฐ–๋Š”๋‹ค. ๋‹ค์ฐจ์› ๋ฐฐ์—ด์˜ ๋ฐ์ดํ„ฐ ๋ฐฉํ–ฅ์„ axis๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ–‰๋ฐฉํ–ฅ(๋†’์ด), ์—ด๋ฐฉํ–ฅ(ํญ), ์ฑ„๋„ ๋ฐฉํ–ฅ์€ ๊ฐ๊ฐ axis=0, axis=1 ๊ทธ๋ฆฌ๊ณ  axis=2๋กœ ์ง€์ •๋œ๋‹ค. NumPy ์ง‘๊ณ„(Aggregation) ํ•จ์ˆ˜๋Š” ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ์˜ ์ง‘๊ณ„ ๋ฐฉํ–ฅ์„ ์ง€์ •ํ•˜๋Š” axis ์˜ต์…˜์„ ์ œ๊ณตํ•œ๋‹ค.

๊ทธ๋ฆผ 1: NumPy 1์ฐจ์›, 2์ฐจ์› ๋ฐ 3์ฐจ์› ๋ฐฐ์—ด๊ณผ Axis :http://taewan.kim/post/numpy_cheat_sheet/

 

 

์•„๋ž˜ colab์—์„œ ์‹ค์Šต์„ ํ•ด๋ณด์…”๋‘ ๋ฉ๋‹ˆ๋‹ค.

colab.research.google.com/github/decoz/mlclass/blob/master/1_numpy_basic.ipynb#scrollTo=B0wa9tKxTQU2

 

Google Colaboratory

 

colab.research.google.com

 

NumPy ๋ฐฐ์—ด๊ณผ ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ์˜ ์ฐจ์ด

ํŒŒ์ด์ฌ์˜ ๋ฆฌ์ŠคํŠธ๋Š” ์ž๋ฃŒ์˜ ์ €์žฅ์— ์ด›์ ์„ ๋‘๊ณ  ์žˆ๋‹ค๋ฉด Numpy ์˜ ๋ฐฐ์—ด์€ ํŠนํžˆ ์ˆ˜ํ•™์ ์ธ ํ–‰๋ ฌ์˜ ํ‘œํ˜„์„ ๋” ์ค‘์‹œํ•œ๋‹ค.

์ด๋Š” ๋‘ ์ž๋ฃŒํ˜•์˜ ๊ธฐ๋ณธ์—ฐ์‚ฐ์˜ ์ฐจ์ด์—์„œ ์ž˜ ๋“œ๋Ÿฌ๋‚œ๋‹ค.

# ํŒŒ์ด์ฌ ๋ฐฐ์—ด
arr1,arr2 = [1,2,3], [4,5,6]
print( "ํŒŒ์ด์ฌ ๋ฐฐ์—ด ๋ง์…ˆ :", arr1 + arr2 )

# numpy ๋ฐฐ์—ด
narr1 = np.array(arr1)
narr2 = np.array(arr2)

print( "numpy ๋ฐฐ์—ด ๋ง์…ˆ :", narr1 + narr2 )
print( "numpy ๋ฐฐ์—ด ๊ณฑ์…ˆ :", narr1 * narr2 )

 

์œ„์—์„œ ๋ณด๋“ฏ์ด ๋ฆฌ์ŠคํŠธ๋Š” + ์—ฐ์‚ฐ์ž๊ฐ€ ๋‘ ๋ฆฌ์ŠคํŠธ์˜ ํ•ฉ๋ณ‘์„ ์˜๋ฏธํ•˜์ง€๋งŒ Numpy ๋Š” ๋‘ ์ž๋ฃŒํ˜•์˜ ๊ฐ’์„ ํ•ฉ์‚ฐํ•œ ๋ฐฐ์—ด์„ ์˜๋ฏธํ•œ๋‹ค.

๋˜ํ•œ Numpy ๋Š” ํ–‰๋ ฌ์ด๋ฏ€๋กœ ๊ฐ ์ฐจ์›์˜ ํฌ๊ธฐ๊ฐ€ ์ผ์ •ํ•ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋‹ค์Œ์˜ 2์ฐจ์› ๋ฆฌ์ŠคํŠธ๋Š” Numpy ๋กœ ๋ณ€ํ™˜์‹œ

 

์œ„์—์„œ arr1 ์€ ๋‘๊ฐœ์˜ List๊ธธ์ด๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— 2์ฐจ์› ํ–‰๋ ฌ๋กœ ๋ณ€ํ™˜์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ž˜์„œ narr1์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ’์œผ๋กœ ๊ฐ–๋Š” 1์ฐจ์› ํ–‰๋ ฌ๋กœ ๋ณ€ํ™˜์ด ๋˜์—ˆ์ง€๋งŒ narr2 ๋Š” 2x3 ์œผ๋กœ ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ 2์ฐจ์› ํ–‰๋ ฌ๋กœ ๋ณ€ํ™˜๋˜์—ˆ๋‹ค.

 

 

Shape , Reshape

NumPy ๋ฐฐ์—ด์€ ๋‹ค์ฐจ์› ๋ฐฐ์—ด์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๋ฉฐ ๋ชจ๋“  NumPy ๋ฐฐ์—ด์€ shape ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๊ทธ ์ฐจ์›์„ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

์œ„ ์˜ˆ์ œ๋Š” shape์™€ reshape์˜ ์˜ˆ์ œ์ด๋‹ค.

 

 

๋ฐฐ์—ด ์ดˆ๊ธฐํ™”

์œ„์—์„œ ๋‚˜์˜จ np.array([1,2,3]) ์ฒ˜๋Ÿผ ๋ฐฐ์—ด์„ ์ง์ ‘ ๊ฐ’์„ ์ค˜์„œ ๋งŒ๋“ค ์ˆ˜ ๋„ ์žˆ์ง€๋งŒ ํฌ๊ธฐ๊ฐ€ ํฐ ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ ์ฃผ๋กœ ์ดˆ๊ธฐํ™” ๋ฃจํ‹ด์„ ํ†ตํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ์™€ ํ˜•ํƒœ๋Š” shape ๊ฐ’์„ ์ธ์ž๋กœ ์ž…๋ ฅํ•œ๋‹ค.

0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒฝ์šฐ 

# 3 x 2 ๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™” 
narr = np.zeros((3,2))
print(narr)

ํŠน์ • ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”

# 2 x 4 ๋ฅผ 7 ์ดˆ ์ดˆ๊ธฐํ™” 
narr = np.full((2,4), 7)
print(narr)

๋ฒ”์œ„์ง€์ •

narr2 = np.array([[1,2,3], [4,5,6]])

print(narr2[0,0])

print("[:,:] -> \n", narr2[:,:],"\n") 
print("[0,:] -> ", narr2[0,:]) # ์ฒซ์งธ ์ค„
print("[:,1] -> ", narr2[:,0]) # ๋‘˜์งธ ์—ด

 

 

๋ฒ”์œ„ ์ง€์ • ์˜ˆ์‹œ 1)

narr = np.zeros((10,10))
narr[2:-2,2:-2] = 2 # ์•ž์— 2๋Š” ์œ„์—์„œ๋ถ€ํ„ฐ 0,1,2 ์ฆ‰ 3๋ฒˆ์งธ ์ค„์— ์˜ค๊ฒ ๋‹ค๋Š” ๊ฑฐ๊ณ , -2 ๋Š” ๋งจ ์•„๋ž˜์„œ ๋ถ€ํ„ฐ ์œ„๋กœ 0,1,2 ์ฆ‰ 3์นธ ๋งŒํผ ์˜ฌ๋ผ๊ฐ„๋‹จ ์†Œ๋ฆฌ. , ํ›„ ์žˆ๋Š” ๊ฑด ๊ฐ€๋กœ
narr[1,1:9]= 1
narr[8,1:-1]= 1

print(narr)

 

์˜ˆ์‹œ ) ๋ฐ˜๋ณต๋ฌธ ์—†์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ Numpy ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ธฐ

narr = np.zeros((10,10))

narr[1:-1,1:-1]=1
narr[2:-2,2:-2]=2
print(narr)

์˜ˆ์‹œ ) ๋ฐ˜๋ณต๋ฌธ ์—†์ด ์ž„์˜์˜ ์ง์ˆ˜ํฌ๊ธฐ ๋ฐฐ์—ด์˜ ํ™€์ˆ˜ ์œ„์น˜๋งŒ 0์œผ๋กœ ๋ณ€ํ™˜

narr = np.array([1,2,3,4,5,6,7,8,9,10,11,12])
narr1 = np.array([1,2,3,4,5,6,7,8,9,10,11,12])
l = int(len(narr)/2) #์ง์ˆ˜
print(narr)
narr = narr.reshape(l,2) #2๊ฐœ ์งœ๋ฆฌ 6๊ฐœ
narr[:,1]=0 #๋ชจ๋“  ๋ฐฐ์—ด์˜ index 1๋ฒˆ์งธ ์ž๋ฆฌ๋ฅผ ๋‹ค 0์œผ๋กœ ์น˜ํ™˜
print(narr.reshape(1,12))

#์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์ด ๊ฐ€๋Šฅ ํ•œ ์ค„ ์•Œ์•˜์œผ๋‚˜, ์›๋ž˜๋Š” 1์ฐจ์› ๋ฐฐ์—ด์ด๊ณ  ์ดํ›„ ์ถœ๋ ฅ๋œ ๊ฒƒ์€ 2์ฐจ์› ๋ฐฐ์—ด์ด๋‹ค.
#๊ฐ™์€ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ์˜ํ–ฅ์„ ๋ฏธ์น  ๊ฒƒ ๊ฐ™์•„ narr1์œผ๋กœ ์ •์˜
narr1.reshape(l,2)[:,1]=0
print(narr1)

 

 

Matplotlib ๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐฐ์—ด ์‹œ๊ฐํ™”

 

Matplotlib ๋Š” ํŒŒ์ด์ฌ์—์„œ ํ‘œ, ์ด๋ฏธ์ง€, ํžˆ์Šคํ† ๊ทธ๋žจ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™” ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

ํŠนํžˆ ๊ทธ์ค‘์— pyplot ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

import matplotlib.pyplot as plt 

 

๊ธฐ๋ณธ ์˜ˆ์ œ) ๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ 1์ฐจ์› ๋ฐฐ์—ด(x,y)๋ฅผ ๊ธฐ์žฌํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด x๊ฐ€ 1,2,3,4 ..y ๊ฐ€ ์ •ํ•ด์ค€ ๊ฐ’์œผ๋กœ ๋“ค์–ด๊ฐ.

 

import matplotlib.pyplot as plt
narr = np.array([1,3,2,5,4])
plt.plot(narr)
plt.show()

 

์˜ˆ์ œ ) ์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„ ํ•ฉ์น˜๊ธฐ

from matplotlib import pyplot as plt

plt.plot([1,2,3],[1,4,9])
plt.plot([2,3,4],[5,6,7])
plt.xlabel('Sequence')
plt.ylabel('Time(secs)')
plt.title('Experiment Result')
plt.legend(['Mouse','Cat'])
plt.show()

 

๋ฐฐ์—ด์„ ์—ฐ๊ฒฐ์ด ์•„๋‹Œ ์ , ํ˜น์€ ๋‹ค๋ฅธ ๊ธฐํ˜ธ๋กœ ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

narr = np.array([1,3,2,5,4])
narr1 = np.array([2,3,4,5,6])
narr2 = np.array([5,4,3,2,1])
narr3 = np.array([4,2,4,2,6])
plt.plot(narr, '+') # ์–ด๋–ค ์ ์œผ๋กœ ํ‘œํ˜„ํ•  ์ง€(๋งˆํฌ -> . + * ๋“ฑ ์˜ ๊ธฐํ˜ธ๊ฐ€ ์žˆ๋‹ค.)
plt.plot(narr1, '-')
plt.plot(narr2, '*')
plt.plot(narr3, 'o')
plt.show()

 

ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

narr = np.array([1,1,2,2,3,4,4,4,5,5,4])
#plt.hist(narr, 3)
#plt.hist(narr, 5) # 3์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์„ 3๊ฐœ์˜ ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค๋Š” ๋œป //์ตœ๋Œ€ ๊ฐœ์ˆ˜์™€ ๋ถ€ํ•ฉํ•จ.
plt.hist(narr, 6) # ํ•œ๊ฐœ๊ฐ€ ๋น„๋Š” ์ด์œ ๋Š” ์ˆซ์ž ์ข…๋ฅ˜๊ฐ€ 5๊ฐ€์ง€๋ผ์„œ

plt.show()

 

 

1์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ plot ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„์‹ํ™” ํ•  ๊ฒฝ์šฐ x ์ถ•์€ ์ž๋™์ ์œผ๋กœ ์ฑ„์›Œ์ง„๋‹ค.

ํ•˜์ง€๋งŒ ๋‘๊ฐœ์˜ ๋ฐฐ์—ด์„ ๋„ฃ์œผ๋ฉด ๊ฐ๊ฐ์„ x์™€ y๊ฐ’์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.

 

์˜ˆ์ œ ) [x1,y1, x2,y2, x3,y3 .. ] ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ง์ˆ˜ ํฌ๊ธฐ์˜ ๋ฐฐ์—ด์˜ ๊ฐ ์  (x1,y1), (x2,y2), .. ๋ฅผ ํ™”๋ฉด์— ๊ทธ๋ ค๋ณด์ž.

narr = np.array([1,1,1,2,1,3,1,4,1,5,2,2,3,3,4,4,5,1,5,2,5,3,5,4,5,5]) # ์˜ˆ์ œ์šฉ ๋ฐฐ์—ด
#์—ฐ์Šต๋ฌธ์ œ์˜ ํ’€์ด๋ฅผ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”
l = int(len(narr)/2)

y=narr.reshape(l,2)[:,1]
x= narr.reshape(l,2)[:,0]
plt.plot(x,y,'o')
plt.show()

 

์˜ˆ์ œ ) ๋ฐ˜๋ณต์—†์ด ๊ฐ€๋กœ/์„ธ๋กœ์ค„ ๋งŒ๋“ค๊ธฐ

1. ์„ธ๋กœ

100x100 ์˜ ๋ฐฐ์—ด์ด ์žˆ์„๋•Œ ๋ฐ˜๋ณต๋ฌธ ์—†์ด ๋ฐฐ์—ด์˜ reshape๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž

narr = np.zeros((100,100)) #์ด 10000๊ฐœ์˜ ์ ์ด ......ํ•ด์„œ ๋ชจ์ธ๊ฒƒ
narr = narr.reshape(1000,10) #10๊ฐœ์งœ๋ฆฌ 1000๊ฐœ
narr[:,5]= 255 #y์ถ•์— ์„ ์„ ์ƒ๊ธฐ๊ฒŒ ํ•ด์คŒ. ์—ฐ๊ฒฐ๋˜์„œ ์„ ์ฒ˜๋Ÿผ ๋ณด์ž„. 0์œผ๋กœ ํ•˜๋ฉด 0๋ถ€ํ„ฐ start์ธ๋ฐ, 5๋ฅผ ์จ์ค˜์„œ ๊ฐ€๋กœ๋กœ 5๋งŒํผ ๋„์›Œ์ง„ ๊ณณ๋ถ€ํ„ฐ ์‹œ์ž‘.
narr = narr.reshape(100,100) #100 *100์˜ ์ฒจ ๋ชจ์Šต์œผ๋กœ ๋‹ค์‹œ ๋Œ๋ฆผ
plt.imshow(narr, cmap='gray')
plt.show()

 

2. ๊ฐ€๋กœ (์™œ 3์ฐจ์›์ธ์ง€ ๊ทธ๋ฆผ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”)

narr = np.zeros((100,100)) #์ด 10000๊ฐœ์˜ ์ ์ด ......ํ•ด์„œ ๋ชจ์ธ๊ฒƒ
narr = narr.reshape(10,10,100) #๊ฐ€๋กœ๋Š” 3์ฐจ์›์œผ๋กœ ํ•ด์•ผํ•จ.
narr[:,5,:]= 255 # 255๋Š” ์ƒ‰์ƒ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
narr = narr.reshape(100,100) #100 *100์˜ ์ฒจ ๋ชจ์Šต์œผ๋กœ ๋‹ค์‹œ ๋Œ๋ฆผ
plt.imshow(narr, cmap='gray')
plt.show()

 

3. ๋‘˜์„ ํ•ฉ์นจ

narr = np.zeros((100,100)) #์ด 10000๊ฐœ์˜ ์ ์ด ......ํ•ด์„œ ๋ชจ์ธ๊ฒƒ

narr = narr.reshape(1000,10)
narr[:,5] =255
narr = narr.reshape(10,10,100) #๊ฐ€๋กœ๋Š” 3์ฐจ์›์œผ๋กœ ํ•ด์•ผํ•จ.
narr[:,5,:]= 255 # 255๋Š” ์ƒ‰์ƒ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
narr = narr.reshape(100,100) #100 *100์˜ ์ฒจ ๋ชจ์Šต์œผ๋กœ ๋‹ค์‹œ ๋Œ๋ฆผ
plt.imshow(narr, cmap='gray')
plt.show()

 

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.