NumPy는 Python(Numpy basic functions III)에서 과학 계산을 위한 핵심 라이브러리로, 강력한 다차원 배열 객체와 다양한 연산 기능을 제공합니다. 이번 포스팅에서는 NumPy의 기본적인 배열 조작 방법들을 알아보겠습니다.

파이썬에서 과학 계산을 하려면 NumPy는 필수입니다.
강력한 다차원 배열 객체와 빠른 연산 기능 덕분에 데이터 분석, 머신러닝, 시뮬레이션 등 다양한 분야에서 널리 쓰이고 있어요.

이번 포스팅에서는 NumPy의 기본적인 배열 조작 방법들을 알아보겠습니다.

Numpy basic functions III Code

import numpy as np

a = np.arange(6)
print(a) # [0 1 2 3 4 5]
b = a.reshape((2, 3))
print(b) # [[0 1 2] [3 4 5]]

a = np.array([[1, 2, 3], [4, 5, 6]])
t = np.transpose(a)
print(t)
# [[1 4]
# [2 5]
# [3 6]]

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

v = np.vstack((a, b))
print(v)
# [[1 2 3]
# [4 5 6]]

h = np.hstack((a, b))
print(h) # [1 2 3 4 5 6]

a = np.array([1, 2, 2, 3, 3, 3])
unique_elements = np.unique(a)
print(unique_elements) # [1 2 3]

a = np.array([1, 2, 3, 4, 5])
indices = np.where(a > 3)
print(indices) # (array([3, 4]),)

rand = np.random.rand(3, 3)
print(rand)

Output

[0 1 2 3 4 5]
[[0 1 2]
 [3 4 5]]
[[1 4]
 [2 5]
 [3 6]]
[1 2 3 4 5 6]
[[1 2 3]
 [4 5 6]]
[1 2 3 4 5 6]
[1 2 3]
(array([3, 4]),)
[[0.23758348 0.49269768 0.86850382]
 [0.70591613 0.89769441 0.38014438]
 [0.77178768 0.25535445 0.54001282]]

1. 배열 생성과 형태 변경

import numpy as np

a = np.arange(6)
print(a) # [0 1 2 3 4 5]
b = a.reshape((2, 3))
print(b) # [[0 1 2] [3 4 5]]
  • np.arange(): 연속된 숫자로 구성된 배열 생성
  • reshape(): 배열의 형태를 변경 (2×3 행렬로 변환)

2. 전치 행렬 (Transpose)

a = np.array([[1, 2, 3], [4, 5, 6]])
t = np.transpose(a)
print(t)
# [[1 4]
# [2 5]
# [3 6]]
  • np.transpose(): 행과 열을 바꾼 전치 행렬 생성
  • 행렬 연산에서 자주 사용되는 기능

3. 배열 결합

가로 방향 결합 (hstack)
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
h = np.hstack((a, b))
print(h) # [1 2 3 4 5 6]
세로 방향 결합 (vstack)
v = np.vstack((a, b))
print(v)
# [[1 2 3]
# [4 5 6]]
일반 결합 (concatenate)
c = np.concatenate((a, b))
print(c) # [1 2 3 4 5 6]

4. 배열에서 고유값 추출

a = np.array([1, 2, 2, 3, 3, 3])
unique_elements = np.unique(a)
print(unique_elements) # [1 2 3]
  • np.unique(): 배열에서 중복을 제거한 고유값만 추출

5. 조건에 따른 인덱스 찾기

a = np.array([1, 2, 3, 4, 5])
indices = np.where(a > 3)
print(indices) # (array([3, 4]),)
  • np.where(): 조건을 만족하는 요소의 인덱스 반환

6. 난수 생성

rand = np.random.rand(3, 3)
print(rand)
  • np.random.rand(): 0~1 사이의 균일 분포 난수로 배열 생성
  • 인자로 주어진 형태(3×3)의 행렬 생성

NumPy는 데이터 분석, 머신러닝, 과학 계산 등 다양한 분야에서 필수적인 라이브러리입니다. 이번 포스팅에서 소개한 기본적인 배열 조작 방법들은 NumPy를 활용하는 데 있어 가장 자주 사용되는 기능들입니다.

이번에 소개한 기능들은 실무에서 자주 사용되는 핵심 함수들이에요.
NumPy를 잘 다루면 Pandas, TensorFlow 같은 라이브러리도 쉽게 접근할 수 있어요.
다음 포스팅에서는 슬라이싱, 브로드캐스팅 등 배열 활용 심화 기능을 다뤄볼게요.

By Mark

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다