NumPy 배열 파일 저장 및 로드 (save, load, savez)
NumPy는 파이썬에서 과학 계산을 할 때 널리 사용되는 라이브러리로, 대규모 배열과 행렬을 쉽게 다룰 수 있는 기능을 제공합니다. 데이터를 저장하고 불러오는 것은 데이터 분석이나 모델링을 진행할 때 필수적인 작업 중 하나입니다. 이번 포스팅에서는 NumPy 배열을 파일로 저장하고 다시 불러오는 방법에 대해 알아보겠습니다.
1. NumPy 배열 저장 및 로드의 필요성
데이터 분석 및 머신러닝 프로젝트에서는 분석에 필요한 데이터를 지속적으로 저장하고 다시 불러와야 할 때가 많습니다. 특히 대용량 데이터를 다룰 때는 매번 데이터를 생성하거나 다운로드하기보다 파일로 저장해 두고 필요할 때 불러오는 것이 효율적입니다.
NumPy는 이러한 작업을 간편하게 처리할 수 있는 save
, load
, savez
함수를 제공합니다. 이를 통해 데이터를 .npy
또는 .npz
형식으로 저장하고 복원할 수 있습니다.
2. NumPy 배열 저장하기: numpy.save
numpy.save
함수는 단일 배열을 .npy
파일 형식으로 저장합니다. .npy
는 NumPy의 고유 파일 형식으로, 배열 데이터를 효율적으로 저장할 수 있습니다.
사용법
numpy.save(file, arr, allow_pickle=True, fix_imports=True)
- file: 저장할 파일 이름. 확장자는
.npy
로 지정됩니다. - arr: 저장할 NumPy 배열.
- allow_pickle: 파이썬 객체 배열을 저장할 때 피클링을 허용할지 여부 (기본값:
True
). - fix_imports: 피클 데이터를 Python 2에서 Python 3으로 호환되게 저장할지 여부 (기본값:
True
).
예제 코드
import numpy as np
# NumPy 배열 생성
arr = np.array([1, 2, 3, 4, 5])
# 배열 저장
np.save("example_array.npy", arr)
print("배열이 example_array.npy로 저장되었습니다.")
위 코드를 실행하면 현재 작업 디렉터리에 example_array.npy
파일이 생성됩니다.
3. NumPy 배열 불러오기: numpy.load
저장된 .npy
파일을 다시 배열로 불러올 때는 numpy.load
함수를 사용합니다.
사용법
numpy.load(file, mmap_mode=None, allow_pickle=False, fix_imports=True, encoding="ASCII")
- file: 불러올 파일 이름.
- mmap_mode: 메모리 맵 모드를 설정 (
None
,'r+'
,'r'
,'w+'
,'c'
). - allow_pickle: 피클링된 객체를 불러올지 여부 (기본값:
False
). - encoding: 문자열 데이터를 디코딩하는 데 사용할 인코딩 방식.
예제 코드
# 배열 불러오기
loaded_arr = np.load("example_array.npy")
print("불러온 배열:", loaded_arr)
4. 여러 배열 저장하기: numpy.savez
numpy.savez
함수는 여러 개의 배열을 .npz
파일 형식으로 저장합니다. .npz
파일은 여러 .npy
파일을 압축한 형식으로, 키-값 쌍으로 배열을 저장할 수 있습니다.
사용법
numpy.savez(file, *args, **kwds)
- file: 저장할 파일 이름. 확장자는
.npz
로 지정됩니다. - args: 저장할 배열 목록.
- kwds: 키워드-배열 쌍으로 저장할 데이터.
예제 코드
# 여러 배열 생성
arr1 = np.array([1, 2, 3])
arr2 = np.array([[4, 5, 6], [7, 8, 9]])
# 여러 배열 저장
np.savez("multiple_arrays.npz", array1=arr1, array2=arr2)
print("여러 배열이 multiple_arrays.npz로 저장되었습니다.")
5. 여러 배열 불러오기: numpy.load
numpy.load
를 사용하여 .npz
파일에 저장된 배열들을 불러올 수 있습니다.
예제 코드
# 여러 배열 불러오기
loaded = np.load("multiple_arrays.npz")
# 저장된 배열 확인
print("array1:", loaded["array1"])
print("array2:", loaded["array2"])
loaded
객체는 저장된 배열에 접근할 수 있는 딕셔너리와 유사한 객체입니다.
6. 추가 팁
파일 저장 경로 지정하기
파일을 특정 폴더에 저장하고 싶다면 경로를 지정해야 합니다.
np.save("./data/example_array.npy", arr)
압축 저장하기
numpy.savez_compressed
를 사용하면 .npz
파일을 압축하여 저장할 수 있습니다.
np.savez_compressed("compressed_arrays.npz", array1=arr1, array2=arr2)
7. 요약
NumPy는 배열 데이터를 저장하고 불러오는 데 매우 유용한 도구를 제공합니다.
numpy.save
: 단일 배열을.npy
파일로 저장.numpy.load
: 저장된.npy
또는.npz
파일 불러오기.numpy.savez
: 여러 배열을.npz
파일로 저장.
이제 NumPy의 파일 입출력을 활용하여 데이터 분석과 모델링 작업을 더욱 효율적으로 진행할 수 있습니다. 위에서 소개한 예제를 직접 실행해 보면서 익혀 보세요!
'Python > NumPy' 카테고리의 다른 글
NumPy를 사용한 성능 최적화 기법 (0) | 2025.10.21 |
---|---|
NumPy 텍스트 파일 읽기 및 쓰기 (loadtxt, savetxt) (0) | 2025.10.20 |
NumPy 데이터 분석: 데이터 정렬 및 검색 (0) | 2025.10.18 |
NumPy로 배우는 데이터 분석: 배열 필터링과 수정 (0) | 2025.10.17 |
NumPy 데이터 분석: 조건에 따른 데이터 선택 (Boolean Indexing) (0) | 2025.10.16 |