Subscribe

Numpy

Status
Python
Assignee
  • Jaenoo
Created by
  • Jaenoo
1.
Numpy as np ๊ธฐ๋ณธ ๊ฐœ๋… ๋ฐ ๊ธฐ๋Šฅ
โ€ข
ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ๋ถ„์„์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐํ˜•, ๋‹ค์–‘ํ•œ ๊ฐ’์„ ์—ฐ์†์œผ๋กœ ์ €์žฅํ•˜๋Š” ๊ฒƒ.
โ€ข
Numpy ๋ฐฐ์—ด - ๋™์ผํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฐ€์ง€๋Š” ๋‹ค์ฐจ์› ๋ฐฐ์—ด, ๋ฆฌ์ŠคํŠธ๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ์ด ๋›ฐ์–ด๋‚˜๊ณ  ๋ฒ ๊ฑฐํ™” ์—ฐ์‚ฐ์„ ์ง€์›ํ•˜์—ฌ ๋ฐ˜๋ณต๋ฌธ ์—†์ด ๋น ๋ฅธ ๊ณ„์‚ฐ์ด ๊ฐ€๋Šฅ.
import numpy as np import time # ๋ฐ์ดํ„ฐ ์ƒ์„ฑ data_list = list(range(1, 100000001)) # 1๋ถ€ํ„ฐ 1,000,000๊นŒ์ง€์˜ ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ data_array = np.array(data_list) # ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ NumPy ๋ฐฐ์—ด ์ƒ์„ฑ # ๋น„๊ต - 1 # ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•œ ์—ฐ์‚ฐ start_time = time.time() result_list = [] for x in data_list: result_list.append(x * 2) end_time = time.time() loop_duration = end_time - start_time print(f"๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•œ ์—ฐ์‚ฐ ์‹œ๊ฐ„: {loop_duration:.6f}์ดˆ") # ๋น„๊ต - 2 # ๋ฒกํ„ฐํ™”๋œ ์—ฐ์‚ฐ (Vectorized Operations) start_time = time.time() result_array = data_array * 2 end_time = time.time() vectorized_duration = end_time - start_time print(f"Vectorized Operations ์—ฐ์‚ฐ ์‹œ๊ฐ„: {vectorized_duration:.6f}์ดˆ") # ๊ฒฐ๊ณผ ๋น„๊ต print(f"Vectorized Operations ์—ฐ์‚ฐ ์‹œ๊ฐ„ ๋น ๋ฅด๊ธฐ : {loop_duration / vectorized_duration:.2f}๋ฐฐ ๋น ๋ฆ„")
์ง‘ ๋ฐ–์œผ๋กœ ๋‚˜์™€ ์นดํŽ˜์—์„œ laptop์œผ๋กœ ์ž‘์—…ํ•˜๋‹ค๋ณด๋‹ˆ ์‹œ๊ฐ„์ด ๋ถ„๋‹จ์œ„๋กœ ๋›ด๋‹ค ใ„ทใ„ท
1.
๋„˜ํŒŒ์ด ๋ฐฐ์—ด ์†์„ฑ(dtype, ndim, T, size, nbtypes, flat)
import numpy as np # ๋ฐฐ์—ด ์ƒ์„ฑ array = np.array([[1, 2, 3], [4, 5, 6]]) # ๋ฐ์ดํ„ฐํ˜•(dtype) ํ™•์ธ print("Data Type (dtype):", array.dtype) # ๋ชจ์–‘(shape) ํ™•์ธ print("Shape (shape):", array.shape) # ์ฐจ์›(ndim) ํ™•์ธ print("Number of Dimensions (ndim):", array.ndim) # ๋ฐฐ์—ด์˜ ํ–‰/์—ด ๋ณ€ํ™˜ (transpose) print("Transposed Array (T):") print(array.T) # ๋ฐฐ์—ด์˜ ์›์†Œ ์ˆ˜(size) ํ™•์ธ print("Total Number of Elements (size):", array.size) # ๋ฐฐ์—ด์˜ ์ „์ฒด ๋ฐ”์ดํŠธ ์ˆ˜(nbytes) ํ™•์ธ print("Total Bytes (nbytes):", array.nbytes)
1.
ํ‰ํƒ„ํ™”
import numpy as np # 2D ๋ฐฐ์—ด ์ƒ์„ฑ array_2d = np.array([[1, 2, 3], [4, 5, 6]]) # ๋ฐฐ์—ด์„ 1D๋กœ ํ‰ํƒ„ํ™” flattened_array = array_2d.flatten() print("Original 2D Array:") print(array_2d) print("\nFlattened 1D Array:") print(flattened_array)
1.
์ธ๋ฑ์‹ฑ
import numpy as np # 1D ๋ฐฐ์—ด array_1d = np.array([10, 20, 30, 40, 50]) print("1D ๋ฐฐ์—ด์—์„œ 3๋ฒˆ์งธ ์š”์†Œ:", array_1d[2]) # 2D ๋ฐฐ์—ด array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print("2D ๋ฐฐ์—ด์—์„œ (2, 3) ์š”์†Œ:", array_2d[1, 2])
1.
์Šฌ๋ผ์ด์‹ฑ ไธญ
import numpy as np # 2D ๋ฐฐ์—ด array_2d = np.array([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 14]]) print("๊ฐ•์‚ฌ๋‹˜์ด ์‹œํ‚ค์‹  ๊ฒƒ :") print(array_2d[0:2:1, 0:2:1])

๐Ÿ’ญ ํšŒ๊ณ 

1.
๋ฐฐ์šด ์ 
โ€ข
Pandas ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ - ํŒ๋‹ค์Šค๋Š” ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ์™€ ๋ถ„์„์— ํŠนํ™”๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, DataFrame๊ณผ Series๋ฅผ ํ†ตํ•ด ํ…Œ์ด๋ธ” ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃธ.
2.
์–ด๋ ค์šด ์ /๊ฐœ์„ ํ•  ์ 
โ€ข
๋‹ค์ฐจ์› ๋ฐฐ์—ด์˜ ๋ณต์žกํ•œ ์ธ๋ฑ์‹ฑ ๋ฐ ์Šฌ๋ผ์ด์‹ฑ์€ ์•„์ง ์™„๋ฒฝํ•˜๊ฒŒ ์ต์ˆ™ํ•˜์ง€ ์•Š์•„ ์ถ”๊ฐ€์ ์ธ ์‹ค์Šต์ด ํ•„์š”ํ•จ.
โ€ข
๋ฒกํ„ฐํ™” ์—ฐ์‚ฐ๊ณผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…์˜ ์›๋ฆฌ๋ฅผ ๋‹ค์–‘ํ•œ ์‚ฌ๋ก€๋กœ ๋” ์‹ค์Šตํ•ด ๋ณด๋ฉฐ, ์„ฑ๋Šฅ ์ฐจ์ด๋ฅผ ์ง์ ‘ ์ฒดํ—˜ํ•ด ๋ณด๊ณ  ์‹ถ์Œ.(ํ”„๋กœ์ ํŠธ์™€ ์‹ค๋ฌด์— ์ค‘์š”ํ• ๋“ฏ)