NumPy 데이터 분석: 배열 변환 및 조작
배열의 형태 변경, 병합 및 분리, 그리고 배열 데이터 조작 방법
NumPy는 배열의 형태를 변경하거나 데이터를 조작하는 다양한 기능을 제공합니다. 이번 글에서는 배열의 형태 변경, 병합 및 분리, 그리고 배열 데이터 조작 방법을 살펴보겠습니다.
1. 배열의 형태 변경 (Reshape)
배열의 형태를 변경하여 다양한 차원의 배열로 변환할 수 있습니다.
1) 배열 형태 변경
reshape()
함수는 배열의 형태를 변경합니다.
1
2
3
4
5
6
7
8
9
10
11
import numpy as np
# 1차원 배열 생성
arr = np.array([1, 2, 3, 4, 5, 6])
# 2x3 형태로 변환
reshaped = arr.reshape(2, 3)
print(reshaped)
# 출력:
# [[1 2 3]
# [4 5 6]]
주의:
- 변경하려는 배열의 요소 개수는 변경 후에도 동일해야 합니다.
2) 자동 형태 지정
-1을 사용하면 자동으로 형태를 계산합니다.
1
2
3
4
5
6
7
# 자동 형태 계산
reshaped = arr.reshape(3, -1)
print(reshaped)
# 출력:
# [[1 2]
# [3 4]
# [5 6]]
3) 배열 펼치기
ravel()
또는 flatten()
함수는 다차원 배열을 1차원으로 변환합니다.
1
2
3
4
5
# 배열 펼치기
arr2 = np.array([[1, 2], [3, 4]])
flattened = arr2.ravel()
print(flattened)
# 출력: [1 2 3 4]
2. 배열 병합과 분리
1) 배열 병합
1. hstack()
함수
- 배열을 수평으로 병합합니다. ```python arr1 = np.array([1, 2]) arr2 = np.array([3, 4])
merged = np.hstack((arr1, arr2)) print(merged)
출력: [1 2 3 4]
1
2
3
4
5
6
7
8
9
**2. `vstack()` 함수**
- 배열을 수직으로 병합합니다.
```python
merged = np.vstack((arr1, arr2))
print(merged)
# 출력:
# [[1 2]
# [3 4]]
2) 배열 분리
1. hsplit()
함수
- 배열을 수평으로 분리합니다. ```python arr = np.array([[1, 2, 3], [4, 5, 6]])
split = np.hsplit(arr, 3) print(split)
출력: [array([[1],
[4]]), array([[2],
[5]]), array([[3],
[6]])]
1
2
3
4
5
6
7
8
**2. `vsplit()` 함수**
- 배열을 수직으로 분리합니다.
```python
split = np.vsplit(arr, 2)
print(split)
# 출력:
# [array([[1, 2, 3]]), array([[4, 5, 6]])]
3. 배열 데이터 조작
1) 배열 전치 (Transpose)
T
속성 또는 transpose()
함수를 사용하여 배열의 행과 열을 교환합니다.
1
2
3
4
5
6
7
arr = np.array([[1, 2], [3, 4]])
transposed = arr.T
print(transposed)
# 출력:
# [[1 3]
# [2 4]]
2) 배열 뒤집기
flip()
함수는 배열의 요소를 뒤집습니다.
1
2
3
4
5
6
# 수평으로 뒤집기
flipped = np.flip(arr, axis=1)
print(flipped)
# 출력:
# [[2 1]
# [4 3]]
3) 배열 축 변경
swapaxes()
함수는 배열의 축을 변경합니다.
1
2
3
4
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
swapped = arr.swapaxes(0, 1)
print(swapped)
4. 배열 데이터 추가와 삭제
1) 배열 요소 추가
append()
함수는 배열에 새로운 요소를 추가합니다.
1
2
3
4
5
6
arr = np.array([1, 2, 3])
# 배열 끝에 추가
new_arr = np.append(arr, [4, 5])
print(new_arr)
# 출력: [1 2 3 4 5]
2) 배열 요소 삭제
delete()
함수는 특정 위치의 요소를 삭제합니다.
1
2
3
4
5
6
arr = np.array([1, 2, 3, 4])
# 인덱스 2의 요소 삭제
new_arr = np.delete(arr, 2)
print(new_arr)
# 출력: [1 2 4]
3) 배열 요소 삽입
insert()
함수는 특정 위치에 요소를 삽입합니다.
1
2
3
4
5
6
arr = np.array([1, 2, 3])
# 인덱스 1에 99 삽입
new_arr = np.insert(arr, 1, 99)
print(new_arr)
# 출력: [ 1 99 2 3]
정리
- 배열 변환은 데이터 분석에서 배열의 차원을 변경하거나 재구조화할 때 유용합니다.
- 배열 병합과 분리는 데이터를 효율적으로 연결하거나 나누는 데 사용됩니다.
- 데이터 조작은 배열 전치, 뒤집기, 축 변경 등을 포함하여 데이터 구조를 재구성하는 데 도움이 됩니다.
- NumPy의 다양한 배열 조작 기능을 활용하면 복잡한 데이터 작업도 간단히 처리할 수 있습니다.
다음 글 예고:
NumPy의 데이터 분석에 필요한 중요한 연산을 다뤄보는 “기본 연산 및 통계 함수”에 대해 알아보겠습니다!
This post is licensed under CC BY 4.0 by the author.