티스토리 뷰

728x90
반응형

NumPy는 파이썬에서 과학적 계산을 위한 핵심 라이브러리입니다. 주로 다차원 배열 객체와 배열을 효율적으로 처리할 수 있는 다양한 수학 함수들을 제공합니다. 데이터 분석, 머신러닝, 수치 해석 등 여러 분야에서 필수적으로 사용됩니다. 

 

Numpy 공식 문서 

https://numpy.org/doc/stable/ 

NumPy 설치하기

NumPy는 pip를 통해 쉽게 설치할 수 있습니다. 터미널 또는 명령 프롬프트에서 다음 명령어를 입력하세요.

bash

pip install numpy

NumPy 기본 개념

1. 배열 생성하기

NumPy의 기본 데이터 구조는 ndarray (N-dimensional array)입니다. 배열을 생성하는 여러 방법이 있습니다.

python

import numpy as np

# 1차원 배열
array_1d = np.array([1, 2, 3, 4, 5])
print("1차원 배열:", array_1d)

# 2차원 배열
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
print("2차원 배열:\n", array_2d)

# 3차원 배열
array_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("3차원 배열:\n", array_3d)

2. 배열 속성

배열의 모양(shape), 크기(size), 데이터 타입(dtype) 등을 확인할 수 있습니다.

python

print("배열 모양:", array_2d.shape)  # (2, 3)
print("배열 크기:", array_2d.size)   # 6
print("배열 데이터 타입:", array_2d.dtype)  # int64

3. 배열 연산

NumPy는 배열 간의 다양한 연산을 지원합니다.

python

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

# 덧셈
print("덧셈:", a + b)

# 뺄셈
print("뺄셈:", a - b)

# 곱셈
print("곱셈:", a * b)

# 나눗셈
print("나눗셈:", a / b)

자주 사용되는 NumPy 함수

1. 배열 생성 함수

  • np.zeros(shape): 주어진 형태의 0으로 채워진 배열을 생성합니다.
  • np.ones(shape): 주어진 형태의 1로 채워진 배열을 생성합니다.
  • np.arange(start, stop, step): 특정 범위의 배열을 생성합니다.
  • np.linspace(start, stop, num): 주어진 범위에서 균등 간격의 배열을 생성합니다.

python

# 배열 생성 예제
zeros_array = np.zeros((2, 3))
print("0으로 채워진 배열:\n", zeros_array)

ones_array = np.ones((2, 3))
print("1로 채워진 배열:\n", ones_array)

range_array = np.arange(0, 10, 2)
print("0부터 10까지 2 간격의 배열:", range_array)

linspace_array = np.linspace(0, 1, 5)
print("0부터 1까지 5개의 균등 간격 배열:", linspace_array)

2. 배열 연산 함수

  • np.add(), np.subtract(), np.multiply(), np.divide(): 각각 덧셈, 뺄셈, 곱셈, 나눗셈을 수행합니다.
  • np.sum(): 배열의 합계를 구합니다.
  • np.mean(): 배열의 평균을 구합니다.
  • np.std(): 배열의 표준편차를 구합니다.

python

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

# 배열 연산 예제
print("합계:", np.sum(data))
print("평균:", np.mean(data))
print("표준편차:", np.std(data))

3. 배열 인덱싱 및 슬라이싱

NumPy는 배열의 특정 요소에 접근하거나 부분 배열을 추출할 수 있습니다.

python

# 특정 요소 접근
print("첫 번째 요소:", array_1d[0])
print("두 번째 행의 첫 번째 열 요소:", array_2d[1, 0])

# 슬라이싱
print("1차원 배열 슬라이스:", array_1d[1:4])  # [2, 3, 4]
print("2차원 배열 슬라이스:\n", array_2d[:, 1])  # [2, 5]

4. 브로드캐스팅

브로드캐스팅은 서로 다른 크기의 배열 간의 연산을 가능하게 하는 기능입니다.

python

# 배열과 스칼라의 브로드캐스팅
array = np.array([1, 2, 3])
result = array + 5
print("브로드캐스팅 결과:", result)  # [6, 7, 8]

5. 행렬 연산

NumPy는 선형 대수 연산을 위한 함수를 제공합니다.

python

# 행렬 곱셈
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
C = np.dot(A, B)
print("행렬 곱셈 결과:\n", C)

# 역행렬
inv_A = np.linalg.inv(A)
print("역행렬:\n", inv_A)

6. 배열 변형

배열의 형태를 변경하거나 차원을 추가 또는 삭제할 수 있습니다.

python

# 배열 변형
reshaped_array = np.reshape(array_2d, (3, 2))
print("변형된 배열:\n", reshaped_array)

# 차원 추가
expanded_array = np.expand_dims(array_1d, axis=0)
print("차원 추가된 배열:\n", expanded_array)

결론

NumPy는 데이터 과학 및 머신러닝을 포함한 다양한 분야에서 필수적인 도구입니다. 위에서 소개한 기본적인 기능들과 자주 사용되는 함수들을 통해 더 복잡한 데이터를 처리하고 분석할 수 있습니다. NumPy를 통해 파이썬의 강력한 과학적 계산 능력을 활용해 보세요!

728x90
반응형