기본 연산(Numpy basic functions II)에 대해서 알아보려고 합니다. Python 기본 연산(+, -, *, / 등)이 있지만, NumPy 연산을 쓰는 이유는 속도와 효율성 때문입니다.
이항연산을 하는 것과는 다르게 Numpy의 대량의 데이터를 다루는 라이브러리이다 보니 Python의 기본 연산은 리스트 같은 자료형을 처리할 때 반복문을 사용해야 해서 느립니다.
하지만 NumPy는 벡터화 연산(vectorized operations) 을 지원해서, 반복문 없이도 한 번에 배열 연산을 수행할 수 있습니다. 즉, 더 빠르고 메모리도 효율적으로 사용할 수 있게 구성되어 있다고 보면 됩니다.
NumPy 연산의 장점
- 빠르다 – C언어 기반으로 구현되어 최적화됨.
- 벡터 연산 지원 – 반복문 없이도 배열 단위 연산 가능.
- 메모리 효율적 – 리스트보다 적은 메모리 사용.
- 다양한 수학, 통계 함수 제공 – 평균, 표준편차, 합계 등 손쉽게 계산 가능.
즉, 데이터 분석이나 머신러닝처럼 많은 연산이 필요한 경우엔 NumPy를 사용하는게 필수 과정 처럼 되어있는 것 같습니다.
Numpy basic functions II Code
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.add(a, b)
print(result) # [5 7 9]
result = np.subtract(a, b)
print(result) # [-3 -3 -3]
result = np.multiply(a, b)
print(result) # [ 4 10 18]
result = np.divide(a, b)
print(result) # [0.25 0.4 0.5 ]
m = np.mean(a)
print(m) # 2.0
med = np.median(a)
print(med) # 2.0
s = np.std(a)
print(s) # 0.816496580927726
s = np.sum(a)
print(s) # 6
min_val = np.min(a)
print(min_val) # 1
max_val = np.max(a)
print(max_val) # 3
Output
[5 7 9]
[-3 -3 -3]
[ 4 10 18]
[0.25 0.4 0.5 ]
2.0
2.0
0.816496580927726
6
1
3
NumPy는 숫자와 배열을 다루는 강력한 라이브러리이고, 이산수학은 정수, 조합, 논리 연산, 그래프 등 불연속적인 수학적 개념을 연구하는 학문으로 두 개념은 여러 면에서 밀접한 관련이 있습니다.
네트워크 분석, 추천 시스템, 경로 최적화 등에 활용되는데요.
수열과 행렬 연산
이산수학에서는 수열과 행렬을 자주 다루는데, NumPy는 벡터 및 행렬 연산을 빠르게 처리할 수 있습니다.
예를 들어, 피보나치 수열, 이항 계수, 행렬 연산(곱셈, 전치 등)이 NumPy로 쉽게 구현됩니다.
조합과 순열
이산수학에서는 가능한 경우의 수를 계산하는 조합(combinations)과 순열(permutations)이 중요한데, NumPy는 이를 최적화된 방식으로 계산할 수 있고, 데이터 샘플링, 확률 계산 등에 활용됩니다.
논리 연산과 집합
논리게이트, 참/거짓 판단, 집합 연산(교집합, 합집합, 차집합) 같은 개념도 이산수학의 핵심인데, NumPy는 논리 연산과 집합 연산을 최적화된 배열 방식으로 제공하고 있습니다. 그래서 머신러닝에서 데이터 필터링, 이미지 처리 등에도 활용됩니다.
그래프 이론과 인접 행렬
이산수학에서는 네트워크, 소셜 그래프, 최단 경로 등의 문제를 다루는데, NumPy는 인접 행렬(adjacency matrix)을 활용해 그래프를 쉽게 표현할 수 있습니다.