๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Maker's VAP
AI/ML DL

[Do it! ๋”ฅ๋Ÿฌ๋‹ ์ž…๋ฌธ] ๋„˜ํŒŒ์ด(NumPy) ๋ฐฐ์—ด๋กœ ์‚ฐ์ ๋„ ๊ทธ๋ฆฌ๊ธฐ

by E = mc² 2020. 3. 9.

๐ŸŽƒ ๋„˜ํŒŒ์ด(NumPy)๋ž€?

ํŒŒ์ด์ฌ์˜ ํ•ต์‹ฌ ๊ณผํ•™ ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜๋กœ์จ ๋งŽ์€ ๋จธ์‹ ๋Ÿฌ๋‹, ๋”ฅ๋Ÿฌ๋‹ ํŒจํ‚ค์ง€๊ฐ€ ๋„˜ํŒŒ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋˜์—ˆ๊ณ  ๋„˜ํŒŒ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ณ„์Šนํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ์ตํ˜€์•ผ ํ•˜๋Š” ํŒŒ์ด์ฌ ํŒจํ‚ค์ง€์ด๋‹ค.

 

๋„˜ํŒŒ์ด๋ฅผ ์‹ค์Šตํ•˜๊ธฐ ์ „์— ๋„˜ํŒŒ์ด์˜ ๋ฐฐ์—ด๊ณผ ๋น„์Šทํ•œ ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋จผ์ € ๋ณต์Šตํ•œ๋‹ค.

my_list = [10, 'hello list', 20]
print(my_list[1])

์‹คํ–‰ ๊ฒฐ๊ด๊ฐ’์œผ๋กœ 1๋ฒˆ์งธ index์ธ hello list๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

 

๋˜ํ•œ ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋กœ ๋‹ค๋ฅธ ๋ฆฌ์ŠคํŠธ๋ฅผ ํฌํ•จ์‹œ์ผœ๋„ ๋˜๋Š”๋ฐ ์ด์ฒ˜๋Ÿผ ์ค‘์ฒฉ๋œ ๋ฐฐ์—ด์„ 2์ฐจ์› ๋ฐฐ์—ด์ด๋ผ๊ณ  ํ•œ๋‹ค.

์•„๋ž˜ ์ฝ”๋“œ๋Š” ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋กœ 3๊ฐœ์˜ ์š”์†Œ๋ฅผ ๊ฐ€์ง„ 1์ฐจ์› ๋ฐฐ์—ด์„ 2๊ฐœ ์Œ“์€ ์˜ˆ์ด๋‹ค.

my_list_2 = [[10, 20, 30], [40, 50, 60]]

์ด ๋ฆฌ์ŠคํŠธ์˜ ํฌ๊ธฐ๋Š” ๋ณดํ†ต '2 X 3 ํฌ๊ธฐ'๋ผ๊ณ  ํ•˜๊ฑฐ๋‚˜ 2๊ฐœ์˜ ํ–‰๊ณผ 3๊ฐœ์˜ ์—ด์ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

2 X 3 ํฌ๊ธฐ

 

2์ฐจ์› ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์„ ํƒํ•  ๋•Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด 2๊ฐœ์˜ ๋Œ€๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ [ํ–‰์˜ ์ธ๋ฑ์Šค], ๋‘ ๋ฒˆ์งธ [์—ด์˜ ์ธ๋ฑ์Šค]๋ฅผ ๋„ฃ๋Š”๋‹ค. ์—ฌ๊ธฐ์„œ ์ถœ๋ ฅ๋˜๋Š” ๊ฐ’์€?

print(my_list_2[1][1])
๋”๋ณด๊ธฐ

2๋ฒˆ์งธ ํ–‰์˜ 2๋ฒˆ์งธ ์—ด์„ ์„ ํƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— 50์ด ์ถœ๋ ฅ๋œ๋‹ค.


๐Ÿงต ๋„˜ํŒŒ์ด ์ค€๋น„ํ•˜๊ธฐ

๋‹ค์ฐจ์› ๋ฐฐ์—ด์€ ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋กœ ์‚ฌ์šฉํ•ด๋„ ๋˜์ง€๋งŒ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„๋‹ค๋Š” ๋งค์šฐ ํฐ ๋‹จ์ ์ด ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋„˜ํŒŒ์ด๋Š” ์ €์ˆ˜์ค€ ์–ธ์–ด๋กœ ๋‹ค์ฐจ์› ๋ฐฐ์—ด์„ ๊ตฌํ˜„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์ ธ๋„ ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•˜๋ฏ€๋กœ ๋„˜ํŒŒ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ ๋„˜ํŒŒ์ด๋Š” ๋ฐฐ์—ด์„ ์ด์šฉํ•œ ๋‹ค์–‘ํ•œ ํ†ต๊ณ„, ์ˆ˜ํ•™ ํ•จ์ˆ˜๋„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

 

1. ์ฝ”๋žฉ์—์„œ ๋„˜ํŒŒ์ด ์ž„ํฌํŠธํ•˜๊ณ  ๋ฒ„์ „ ํ™•์ธํ•˜๊ธฐ

์ฝ”๋žฉ์—๋Š” ๋„˜ํŒŒ์ด๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ์„ค์น˜ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

 

์ฝ”๋“œ ์…€์— ๋„˜ํŒŒ์ด ํŒจํ‚ค์ง€๋ฅผ ์ž„ํฌํŠธ(import) ํ•œ ํ›„ ์ œ๋Œ€๋กœ ์ž„ํฌํŠธ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ธฐ ์œ„ํ•ด  np.__version__๋ผ๊ณ  ์ž…๋ ฅํ•˜์—ฌ ๋„˜ํŒŒ์ด์˜ ๋ฒ„์ „์„ ์ถœ๋ ฅํ•ด๋ณธ๋‹ค.

 

ํŒŒ์ด์ฌ์˜ import ๋ช…๋ น์œผ๋กœ ๋„˜ํŒŒ์ด๋ฅผ ์ž„ํฌํŠธํ•  ๋•Œ as ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋„˜ํŒŒ์ด๋ฅผ ์ค„์—ฌ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก np๋ผ๋Š” ๋ณ„์นญ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์•ž์œผ๋กœ np๋ผ๋Š” ๋ณ„์นญ์œผ๋กœ ๋„˜ํŒŒ์ด๋ฅผ ์ž„ํฌํŠธ ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์˜ˆ์ •.


๐ŸŽน ๋„˜ํŒŒ์ด๋กœ ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ

๋„˜ํŒŒ์ด๋Š” ํŒŒ์ด์ฌ์˜ ๋ฆฌ์ŠคํŠธ์ฒ˜๋Ÿผ ์ˆซ์ž์™€ ๋ฌธ์ž์—ด์„ ํ•จ๊ป˜ ๋‹ด์„ ์ˆ˜ ์—†๋‹ค. 

ํ•˜์ง€๋งŒ ๋”ฅ๋Ÿฌ๋‹ ๊ณต๋ถ€ ์ค‘์—๋Š” ๋ชจ๋‘ ์ˆซ์ž ๋ฐ์ดํ„ฐ๋งŒ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ƒ๊ด€์—†๋‹ค. 

๋งŒ์•ฝ ๋ฌธ์ž ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ, ์ˆซ์ž๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ž…๋ ฅํ•œ๋‹ค.

 

1. array() ํ•จ์ˆ˜๋กœ 2์ฐจ์› ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ

 

์ถœ๋ ฅ๋œ ๋„˜ํŒŒ์ด ๋ฐฐ์—ด์„ ๋ณด๋ฉด ํ–‰๊ณผ ์—ด์ด ๋งž์ถฐ์ ธ ์žˆ์œผ๋ฉฐ array() ํ•จ์ˆ˜๋Š” ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋„˜ํŒŒ์ด ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค.

 

2. type() ํ•จ์ˆ˜๋กœ ๋„˜ํŒŒ์ด ๋ฐฐ์—ด์ธ์ง€ ํ™•์ธํ•˜๊ธฐ

์ด๋•Œ my_arr์— ์ €์žฅ๋œ ๊ฐ’์ด ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ๋„˜ํŒŒ์ด ๋ฐฐ์—ด์ธ์ง€ type() ํ•จ์ˆ˜๋กœ ๊ฐ์ฒด์˜ ํƒ€์ž…์„ ํ™•์ธํ•œ๋‹ค.

 

๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด my_arr๊ฐ€ ๋„˜ํŒŒ์ด ๋ฐฐ์—ด ํด๋ž˜์Šค์ธ ndarray์˜ ๊ฐ์ฒด์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. 

๋˜ํ•œ ์ฝ”๋“œ ์…€์˜ ๋งˆ์ง€๋ง‰ ์ค„์— print() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

3. ๋„˜ํŒŒ์ด ๋ฐฐ์—ด์—์„œ ์š”์†Œ ์„ ํƒํ•˜๊ธฐ

ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ์—์„œ ์š”์†Œ๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋™์ผํ•˜๋ฉฐ ์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

 

4. ๋„˜ํŒŒ์ด ๋‚ด์žฅ ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋ฅผ ๋ชจ๋‘ ๋”ํ•˜๋ ค๋ฉด? for๋ฌธ์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜์ง€๋งŒ 

๋„˜ํŒŒ์ด๋Š” ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ์ˆ˜ํ•™ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๋ฐ˜๋ณต๋ฌธ ๋Œ€์‹  ๋œ ๋ฒˆ๊ฑฐ๋กœ์šด sum() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ 

for๋ฌธ๋ณด๋‹ค ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ๊ฐ„๊ฒฐํ•˜๋ฉด์„œ ์‹คํ–‰ ์†๋„๊ฐ€ ๋” ๋น ๋ฅด๋„๋ก ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.


๐ŸŽ  ๋งทํ”Œ๋กฏ๋ฆฝ์œผ๋กœ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ

  • ๋งทํ”Œ๋กฏ๋ฆฝ(Matplotlib) :  ํŒŒ์ด์ฌ ๊ณผํ•™ ์ƒํƒœ๊ณ„์˜ ํ‘œ์ค€ ๊ทธ๋ž˜ํ”„ ํŒจํ‚ค์ง€
  • ๋งทํ”Œ๋กฏ๋ฆฝ ์ด์™ธ์—๋„ ์ข‹์€ ๊ทธ๋ž˜ํ”„ ๋„๊ตฌ๋“ค์€ ๋งŽ์ง€๋งŒ ํ•ด๋‹น ํŒจํ‚ค์ง€์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋‹ค.
  • ์ฝ”๋žฉ์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์ž„ํฌํŠธ ์‹œ ๊ด€๋ก€์— ๋”ฐ๋ผ ๋ณ„์นญ์œผ๋กœ plt ์‚ฌ์šฉํ•œ๋‹ค.

 

1. ์„  ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ

๋งทํ”Œ๋กฏ๋ฆฝ์˜ plot() ํ•จ์ˆ˜์— x์ถ•๊ณผ y์ถ•์˜ ๊ฐ’์„ ์ „๋‹ฌํ•œ ๋‹ค์Œ show() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ y = x² ๊ทธ๋ž˜ํ”„๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

2. ์‚ฐ์ ๋„ ๊ทธ๋ฆฌ๊ธฐ

์‚ฐ์ ๋„(scatter plot)๋Š” ๋ฐ์ดํ„ฐ์˜ x์ถ•, y์ถ• ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ์ ์œผ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฐ ๊ฒƒ์œผ๋กœ show() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ 

๋งทํ”Œ๋กฏ๋ฆฝ์ด ์ž๋™์œผ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ค์ค€๋‹ค. ํ•˜์ง€๋งŒ ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ข€ ๋” ๊น”๋”ํ•˜๊ณ  ๋ณด๊ธฐ ์ข‹๊ฒŒ ๊ทธ๋ ค์ง„๋‹ค.

 

3. ๋„˜ํŒŒ์ด ๋ฐฐ์—ด๋กœ ์‚ฐ์ ๋„ ๊ทธ๋ฆฌ๊ธฐ

ํŒŒ์ด์ฌ์˜ ๊ณผํ•™ ํŒจํ‚ค์ง€๋“ค์€ ์˜ˆ์™ธ ์—†์ด ๋„˜ํŒŒ์ด ๋ฐฐ์—ด๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ ธ ์žˆ๋‹ค. 

์ด๋ฒˆ์—๋Š” ๋„˜ํŒŒ์ด์˜ random.randn() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ์ค€ ์ •๊ทœ ๋ถ„ํฌ๋ฅผ ๋”ฐ๋ฅด๋Š” ๋‚œ์ˆ˜(random number)๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ์‚ฐ์ ๋„๋ฅผ ๊ทธ๋ ค๋ณธ๋‹ค.

 

์œ„์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋ฉด ๋ฐ์ดํ„ฐ์—์„œ ์ง๊ด€์„ ์–ป๊ธฐ๊ฐ€ ์‰ฝ๋‹ค. 

๋”ฐ๋ผ์„œ ๋”ฅ๋Ÿฌ๋‹์—์„œ๋„ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋Š” ํ•„์ˆ˜!

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€