본문 바로가기
Data Science/파이썬 기본문법

[파이썬] gzip , rb, savez

by titaniumm 2020. 4. 29.

mnist에서 파일을 저장하고 읽을 때 gzip 과 정체로를 'rb'를 따라서 입력했었다.

gzip은 압축파일을 다룰 때 사용하는 것이고

rb 는 저장형식(?) 으로 볼 수 있다.

R:read

W: write

a:추가

+: 수정

 

t : text

b : 바이너리

따라서 'rb' 는 읽기전용 바이너리 파일로 저장하라는 뜻이다.

디폴트는 rt라고 한다.

 

밑에 minst를 zip에서 불러와서 저장 하는 코드이다.

import gzip
import numpy as np

fnames =['train-images-idx3-ubyte.gz','train-labels-idx1-ubyte.gz','t10k-images-idx3-ubyte.gz','t10k-labels-idx1-ubyte.gz']
with gzip.open(fnames[0],'rb') as f:
    train_image = np.frombuffer(f.read
                                (),np.uint8,offset =16)
with gzip.open(fnames[1],'rb') as f:
    train_label = np.frombuffer(f.read(),np.uint8,offset =8)
with gzip.open(fnames[2],'rb') as f:
    test_image = np.frombuffer(f.read(),np.uint8,offset =16)
with gzip.open(fnames[3],'rb') as f:
    test_label = np.frombuffer(f.read(),np.uint8,offset =8)

train_image = train_image.reshape(-1,28*28)
test_image = test_image.reshape(-1,28*28)
print(train_image.shape)
print(train_label.shape)
print(test_image.shape)
print(test_label.shape)
np.savez('MNIST_array.npz',train_image=train_image,train_label=train_label,test_image=test_image,test_label=test_label)

 

코드를 보지않고

1. gzip으로 압축파일에서 불러와서

2. savez로 저장하고

3. 다시 불러오는 연습을 해야할것 같다.

댓글