[Python] 객체 데이터 저장하고 불러오기
2024. 11. 20. 22:59ㆍDevelopers 공간 [Shorts]/Software Basic
728x90
반응형
<분류>
A. 수단
- OS/Platform/Tool : Linux, Kubernetes(k8s), Docker, AWS
- Package Manager : node.js, yarn, brew,
- Compiler/Transpillar : React, Nvcc, gcc/g++, Babel, Flutter
- Module Bundler : React, Webpack, Parcel
B. 언어
- C/C++, python, Javacsript, Typescript, Go-Lang, CUDA, Dart, HTML/CSS
C. 라이브러리 및 프레임워크 및 SDK
- OpenCV, OpenCL, FastAPI, PyTorch, Tensorflow, Nsight
1. What? (현상)
이번 글에서는 list, numpy, torch 등 다양한 객체 데이터를 저장하고 불러오는 것을 정리하고자 합니다.
2. Why? (원인)
- X
3. How? (해결책)
먼저 객체 데이터를 저장하고 불러올 경로를 만들어주겠습니다.
from pathlib import Path
Path("./folder").mkdir(parents=True, exist_ok=True)
1. Python List
먼저 파이썬에서 내장된 객체 데이터를 선언해보겠습니다.
d = {'name':'Andrew K. Johnson',
'score': 199,
'location':[38.189323, 127.3495672]}
l = [1,2,3,4]
저장시에는 pickle을 사용해 아래와 같이 저장합니다.
import pickle
with open("./folder/test", "wb") as fp: #Pickling
pickle.dump(l, fp)
불러오기는 아래와 같습니다.
with open("./folder/test", "rb") as fp: # Unpickling
loaded = pickle.load(fp)
2. Numpy
numpy에서 사용하는 객체 데이터를 선언하겠습니다.
import numpy as np
x = np.array([0, 1, 2, 3, 4])
저장은 아래와 같이 합니다.
.npy는 단순히 바이너리 파일로 저장하는 것이지만, .npz는 여러개의 객체를 아래와 같이 positional arguments로 넘겨 압축되지 않은 파일로 저장할 때 사용하는 포맷입니다.
np.save('./folder/test', x) # save to .npy
np.savez('./folder/test', mine=x) # save to .npz
np.savez_compressed('./folder/test', mine=x) # save to .npz
불러올 때는 아래와 같이 불러옵니다.
loaded = np.load('./folder/test.npy')
f = np.load('./folder/test.npz')
loaded = f['mine']
f.close()
3. Torch
pytorch tensor를 먼저 선언하겠습니다.
import torch
a = torch.randn(2, 2)
저장은 아래와 같이 합니다.
torch.save(a, './folder/test.npy')
불러올 때는 아래와 같이 불러옵니다.
loaded = torch.load('./folder/test.npy')
728x90
반응형
'Developers 공간 [Shorts] > Software Basic' 카테고리의 다른 글
[Ubuntu] Ubuntu로 멀티부팅 만들기 (0) | 2024.11.18 |
---|---|
[Python] HTTP GET으로 request 보내 받기 (0) | 2024.11.11 |
[Git] master 관리자가 MR 요청한 브랜치의 conflict 해결하기 (0) | 2024.11.07 |
[Gradio] Gradio FastAPI로 띄우기 (0) | 2024.11.07 |
[Markdown] README 템플릿 (0) | 2024.09.19 |