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}๋ฐฐ ๋น ๋ฆ")
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)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)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])
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])