티스토리 뷰

반응형
np.save(filename, arr, allow-pickle=True, fix_import=True)

이 포스팅은 numpy에서 파일을 읽고 쓰는 방법을 정리합니다.

1. savetxt - 파일 저장하기

numpy에서 파일을 쓰기 위한 함수입니다.

numpy.savetxt( filename, X, fmt='%.18e', delimiter=' ', 
	newline='n', header='', footer='', comment='#', encoding=None)

간단히 사용하려면 아래 항목만 넣어 사용합니다.

numpy.savetxt({파일이름}, {데이터}, fmt={데이터 형식}, delimiter={데이터간 구분자})

사용방법 (jupyter에서 출력을 확인해보세요)

import numpy as np
import random

# 파일로 저장하기 위한 배열을 생성합니다.
numbers = np.zeros((10,4))
for i in range(10):
    for j in range(4):
        numbers[i][j] = random.randint(1000,40000)
# 숫자는 랜덤으로 나오기 때문에 출력할때마다 달라집니다.
print(numbers)

 

 

# 파일로 저장하기
np.savetxt("save.txt", numbers, fmt='%d', delimiter=',')

코드를 실행한 폴더에 save.txt가 생성되었는지 확인합니다. fmt는 데이터의 포멧으로 기본 포맷이 '%. 18e'로 되어 있어 숫자 표현되는 형식이 조금 다릅니다. int형태로 저장하려면 fmt='% d'로 설정한 뒤 실행하면 됩니다.

실행했던 폴더 밑에 save.txt 파일 생성 되었다면 정상적으로 저장된 것입니다.

 

 

2. loadtxt - csv, txt 등 파일 읽기 

numpy에서 파일을 읽기 위한 함수입니다.

numpy.loadtxt(fname, dtype=<class 'float', comments='#', delimiter=' ', 
			conerters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, 
            encoding='bytes', max_rows=None>

간단히 사용하려면 아래와 같이 사용하면 됩니다.

numpy.loadtxt({파일 이름}, delimiter=",")

주의해야 하는 것은 해당 파일의 데이터 타입과 구분자가 무엇인지 먼저 확인하고 실행해주어야 에러가 발생하지 않습니다.

사용방법 - csv 파일 읽기.

아래 예제에서는 위에서 생성한 파일을 읽겠습니다.

혹시 파일이 없다면 위 예제에서 파일을 생성하여 테스트해주세요.

 

a = np.loadtxt("save.txt", delimiter=",")
a

 

 

위 save.txt 파일은 , 나눠져 있는 csv 형식의 파일입니다.

delimiter는 구분자로 데이터의 맞는 구분자를 지정해 주어야 문제없이 데이터를 읽어옵니다.

 

3. numpy object - npy

numpy object (pickle) 형태로 데이터를 저장하고 불러올 수 있습니다. npy로 저장하면 Binary 파일 형태로 저장됩니다. 해당 함수를 사용하면 python에서 사용하는 데이터들을 쉽게 공유하거나 저장할 수 있습니다.

 

# 파일로 저장하기 위한 배열을 생성합니다.
numbers = np.zeros((10,4))
for i in range(10):
    for j in range(4):
        numbers[i][j] = random.randint(1000,40000)
# npy 형태로 저장
np.save(“npy_test”, arr=numbers)

실행한 폴더에 "npy_test.npy" 파일이 있는지 확인합니다.

# npy 파일 읽기
npy_array = np.load(file="npy_test.npy")
npy_array[:5]

 

 

랜덤 한 숫자를 생성하기 때문에 출력은 다를 수 있습니다.

반응형
댓글