[파이썬][Scipy] ndarray (NumPy 배열) 예제
ndarray
는 NumPy 패키지에서 제공하는 다차원 배열로, 수학적 연산 및 배열 연산을 효율적으로 수행하기 위한 중요한 데이터 구조입니다. 아래는 ndarray
를 생성하고 다양한 작업을 수행하는 예제입니다.
먼저, NumPy를 가져옵니다:
mport numpy as np
예제 1: ndarray
생성과 기본 속성
# 1차원 배열 생성
arr1d = np.array([1, 2, 3, 4, 5])
# 2차원 배열 생성
arr2d = np.array([[1, 2, 3], [4, 5, 6]])
# 배열 모양(shape) 확인
shape_1d = arr1d.shape
shape_2d = arr2d.shape
# 배열 크기(size) 확인
size_1d = arr1d.size
size_2d = arr2d.size
# 배열 데이터 타입(dtype) 확인
dtype_1d = arr1d.dtype
dtype_2d = arr2d.dtype
print("1차원 배열:")
print(arr1d)
print("1차원 배열 모양:", shape_1d)
print("1차원 배열 크기:", size_1d)
print("1차원 배열 데이터 타입:", dtype_1d)
print("\n2차원 배열:")
print(arr2d)
print("2차원 배열 모양:", shape_2d)
print("2차원 배열 크기:", size_2d)
print("2차원 배열 데이터 타입:", dtype_2d)
예제 2: ndarray
연산
# 두 배열의 덧셈
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result_addition = arr1 + arr2
# 스칼라 곱셈
scalar = 2
result_scalar = scalar * arr1
# 배열 곱셈 (element-wise 곱셈)
result_multiply = arr1 * arr2
# 배열 제곱
result_square = arr1 ** 2
print("덧셈 결과:", result_addition)
print("스칼라 곱셈 결과:", result_scalar)
print("배열 곱셈 결과:", result_multiply)
print("배열 제곱 결과:", result_square)
예제 3: 배열 인덱싱과 슬라이싱
# 배열 인덱싱
arr = np.array([1, 2, 3, 4, 5])
index_2 = arr[2] # 인덱스 2에 있는 원소
index_last = arr[-1] # 마지막 원소
# 배열 슬라이싱
slice_2_to_4 = arr[1:4] # 인덱스 1부터 3까지 슬라이스
slice_start_to_end = arr[::] # 모든 원소 선택
print("인덱스 2:", index_2)
print("마지막 원소:", index_last)
print("슬라이싱 [1:4]:", slice_2_to_4)
print("모든 원소:", slice_start_to_end)
예제 4: 다차원 배열 인덱싱과 슬라이싱
# 2차원 배열 생성
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 특정 원소 선택
element = arr_2d[1, 2] # 1행, 2열의 원소 (6)
# 행 또는 열 슬라이싱
row_1 = arr_2d[1, :] # 1행 전체
col_2 = arr_2d[:, 2] # 2열 전체
print("특정 원소:", element)
print("1행:", row_1)
print("2열:", col_2)
ndarray
는 NumPy의 핵심 데이터 구조로, 다차원 배열을 다루는 데 매우 효율적입니다. 위의 예제를 통해 ndarray
를 생성하고 다양한 연산 및 인덱싱/슬라이싱 작업을 수행하는 방법을 살펴볼 수 있습니다.