Python/NumPy

NumPy 배열 파일 저장 및 로드 (save, load, savez)

임베디드 친구 2025. 10. 19. 13:09
반응형

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의 파일 입출력을 활용하여 데이터 분석과 모델링 작업을 더욱 효율적으로 진행할 수 있습니다. 위에서 소개한 예제를 직접 실행해 보면서 익혀 보세요!

반응형