numpy를 사용하다 보면 array의 값을 파일로 저장해야 할 경우가 생긴다.
이럴경우 따로 파일 IO를 사용하기보다 numpy의 기본 기능을 이용하면 간단하게 저장하고 읽을 수 있다.
저장 할 경우 array의 차원 등의 정보도 같이 저장되기 때문에 별다른 추가 처리를 할 필요가 없다.
(이하 import numpy as np 는 기본으로 포함)
1. *npy 파일로 저장하기
npy 파일 포멧은 하나의 numpy array를 저장하기 위한 포멧이다.
$ x = np.array([0, 1, 2, 3, 4, 5])
$ np.save("./save/data.npy", x)
2. *.npz 파일로 저장하기
npz 파일 포멧은 여러개의 리스트를 한번에 저장하기 위한 포멧이다.
이 경우는 압축 여부에 따라 두 가지 함수가 사용된다.
$ y = np.array([0, 1, 2])
$ z = np.array([3, 4, 5])
# 압축하지 않고 저장하기
$ np.savez("./save/without_compression_data.npz", y=y, z=z)
# 압축하고 저장하기
$ np.save_compressed("./save/compression_data.npz", y=y, z=z)
3. 텍스트 파일로 저장하기
array 값을 바로 확인 가능한 텍스트 파일로 저장하기 위함이다.
텍스트 파일로 저장 할 경우 파일의 시작과 끝에 header, footer 옵션으로 주석을 달 수 있으며
array의 값을 표현할 포멧팅도 지정 가능하다
$ x = np.array([0, 1, 2, 3, 4, 5])
$ np.savetxt("./save/data.txt", x, header="write start", footer="write end", fmt=".1f")
4. 저장 된 np array 불러오기
텍스트 데이터를 제외한 나머지 경우는 np.load를 이용하여 읽을 수 있고 텍스트 데이터는 np.loadtxt를 사용한다.
$ x = np.load("./save/data.npy")
# 여러 array가 있는 경우 저장한 이름을 index로 사용
$ saved_npz = np.load("./save/without_compression_data.npz")
$ saved_npz = np.load("./save/compression_data.npz")
$ y = saved_npz ['y']
$ z = saved_npz ['z']
$ x = loadtxt('"./save/data.txt")
5. load 한 np array 파일 닫기
load 한 array 데이터는 사용이 끝나면 close()를 이용하여 파일을 닫아 준다
또는 with 문을 이용하는 것도 방법.
$ saved_npz.close()
'Programming > Python' 카테고리의 다른 글
list 생성과 초기화 같이 하자 (0) | 2019.08.14 |
---|---|
list 에서 최대값과 최대값의 index를 찾아보자 (0) | 2019.08.14 |
conda를 이용한 가상환경 설정 (0) | 2019.03.05 |
os.path 모듈 사용법 (0) | 2018.03.05 |
파이썬2 와 파이썬3을 동시에 동작시키자 : __future__ (0) | 2018.01.19 |