hanker

머신러닝 배우기(Python) - NumPy 설치 및 사용 방법 (1) 본문

Python

머신러닝 배우기(Python) - NumPy 설치 및 사용 방법 (1)

hanker 2025. 2. 9. 14:00
반응형

Python에서 데이터를 다룰 때 가장 중요한 라이브러리 중 하나가 NumPy(Numerical Python)이다.

파이썬에서 수치 계산과 과학적 연산을 효율적으로 수행하기 위해 설계되었다.

 

이번글에서는 NumPy가 무엇인지, 설치 방법과 사용 방법에 대해서 알아보자.

 


1. NumPy 란?

 

NumPy란 파이썬 내에서 빠른 연산을 수행할 수 있도록 돕는 라이브러리이다.

 

특징으로는

1-1. 다차원 배열(ndarray) 지원

- ndarray 객체 : NumPy의 중심은 동종 데이터(모든 원소가 동일한 데이터 타입)를 연속된 메모리 공간에 저장하는 다차원 배열 객체이다. 이 구조로 인해 배열 간 벡터화 연산을 지원하며, 반목문을 사용하지 않고도 전체 배열에 대해 빠르고 간결하게 연산을 수행한다.

 

1-2. 벡터화 연산과 브로드 캐스팅

- 벡터화 연산 배열 전체에 대해 한 번에 수학적 연산을 적용할 수 있어, 파이썬의 기본 반복문을 사용하는 것보다 빠른 계산이 가능하다.

- 브로드 캐스팅 : 서로 크기가 다른 배열 간에도 자동으로 크기를 맞춰 연산할 수 있는 기능을 제공하여, 코드의 간결성과 효율성을 높인다.

 

1-3. 성능과 메모리 효율성

- C 언어로 구현 : 내부적으로 C 언어로 구현되어 있어, 파이썬의 리스트나 순수 Python코드에 비해 훨씬 빠른 연산 속도를 제공한다.

- 메모리 최적화 : 모든 원소가 동일한 데이터 타입으로 저장되므로, 메모리 사용 면에서도 효율적이다.

 

1-4. 풍부한 수학 및 선형대수 함수 지원

NumPy는 기본적인 산술 연산 외에도, 선형대수, 통계, 푸리에 변환, 난수 생성 등 다양한 수학적 기능을 제공하여 과학 계산 및 데이터 분석에 필수적인 도구로 활용된다.

이 기능들은 SciPy, Pandas, Matplotlib 등 다른 라이브러리와 긴밀하게 연동되어, 파이썬에서 중요한 역할을 한다.

 

1-5. 오픈소스

NumPy는 BSD 라이선스 하에 배포되는 오픈 소스 소프트웨어로, 전 세계의 개발자와 연구자들이 함께 발전시켜 나가고 있다.

 

 


2. NumPy 설치 방법

 

비교적 설치가 간단한데, 터미널 창에 아래 명령어를 실행하면 된다.

pip install numpy

 

설치가 되어 있거나, 최신버전으로 받고 싶을 때에는 아래 명령어를 실행한다.

python.exe -m pip install --upgrade pip

 

설치가 완료되었는지 확인을 해보자

import numpy as np

print(np.__version__)

정상적으로 설치가 되면, 

NumPy 버전이 출력된다.

 


3. NumPy 기본 사용법

 

3-1. NumPy 배열 생성

NumPy에서 중요한 개념은 ndarray이다. 

기본 리스트와는 다르게, NumPy 배열은 더 빠르고 메모리 효율적이다.

import numpy as np

# 리스트를 NumPy 배열로 변환
arr = np.array([1, 2, 3, 4, 5])
print(arr)
print(type(arr))  # <class 'numpy.ndarray'>

 

 

3-2. 다차원 배열 만들기

NumPy는 1차원 배열뿐만 아니라 2차원, 3차원 이상의 배열도 쉽게 생성할 수 있다.

# 2차원 배열 생성 (행렬)
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(matrix)

# 3차원 배열 생성
tensor = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(tensor)

 

 

3-3. 다양한 배열 생성 함수

다양한 방식으로도 배열을 생성할 수 있다.

# 0으로 채워진 배열 생성
zeros = np.zeros((3, 3))
print(zeros)

# 1로 채워진 배열 생성
ones = np.ones((2, 4))
print(ones)

# 특정 범위의 숫자로 배열 생성
range_array = np.arange(0, 10, 2)  # 0부터 10까지 2씩 증가
print(range_array)

# 랜덤 숫자로 배열 생성
random_array = np.random.rand(3, 3)  # 3x3 난수 배열 생성
print(random_array)

 

 


4. NumPy 활용 예제

 

NumPy를 활용하여 수학적 연산을 해보자

 

4-1. 기본적인 수학 연산

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

print("배열 합:", np.sum(arr))  # 1+2+3+4+5 = 15
print("배열 평균:", np.mean(arr))  # (1+2+3+4+5) / 5 = 3.0
print("배열 표준편차:", np.std(arr))  # 표준편차 계산
print("최댓값:", np.max(arr))  # 5
print("최솟값:", np.min(arr))  # 1

 

 

4-2. 선형대수 연산

A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# 행렬 곱 (dot product)
result = np.dot(A, B)
print(result)

# 전치 행렬 (Transpose)
print(A.T)

 

 


정리

 

NumPy는 고속 연산을 위한 핵심 라이브러리로 머신러닝과 데이터 분석에 필수적이다.

우리가 머신러닝을 배우기 위한 첫 번째 필수 도구이므로, 기초 개념을 확실히 다지고 넘어가자!

반응형