Python에서 HDF5 파일을 읽는 방법
Python의 hdf5 파일에서 데이터를 발견합니다. 을 사용하여 hdf5 파일을 읽을 수 h5py
있는 파일 내의 데이터에 액세스하는 방법을 알 수 없습니다.
내 코드
import h5py
import numpy as np
f1 = h5py.File(file_name,'r+')
이것은 작동하고 파일을 읽습니다. 하지만 파일 내부의 내부 데이터에 어떻게 액세스 할 수 f1
있습니까?
HDF5 읽기
import h5py
filename = 'file.hdf5'
with h5py.File(filename, 'r') as f:
# List all groups
print("Keys: %s" % f.keys())
a_group_key = list(f.keys())[0]
# Get the data
data = list(f[a_group_key])
HDF5 쓰기
#!/usr/bin/env python
import h5py
# Create random data
import numpy as np
data_matrix = np.random.uniform(-1, 1, size=(10, 3))
# Write data to HDF5
with h5py.File('file.hdf5', 'w') as data_file:
data_file.create_dataset('group_name', data=data_matrix)
자세한 내용은 h5py 문서 를 참조하십시오.
대안
- JSON : 사람이 읽을 수있는 데이터를 쓰기에 좋습니다. 매우 일반적으로 사용됨 ( 읽기 및 쓰기 )
- CSV : 초간단 형식 ( 읽기 및 쓰기 )
- pickle : Python 배열 화 형식 ( 읽기 및 쓰기 )
- MessagePack ( Python 패키지 ) : 더 간결한 표현 ( 읽기 및 쓰기 )
- HDF5 ( Python 패키지 ) : 적합에 ( 읽기 및 쓰기 )
- XML : 너무 * 한숨 * ( 읽기 및 쓰기 )
애플리케이션의 경우 다음이 중요 할 수 있습니다.
- 다른 프로그래밍 언어에 의한 지원
- 읽기 / 쓰기 성능
- 선택할 함 (파일 크기)
참고 항목 : 데이터화 형식 비교
구성 파일을 만드는 방법을 찾고 있습니다. Python의 구성 파일 을 읽는 것이 좋습니다.
Pandas를 사용할 수 있습니다.
import pandas as pd
pd.read_hdf(filename,key)
파일 읽기
import h5py
f = h5py.File(file_name, mode)
존재하는 HDF5 그룹을 인쇄하여 파일 구조 연구
for key in f.keys():
print(key) #Names of the groups in HDF5 file.
데이터 추출
#Get the HDF5 group
group = f[key]
#Checkout what keys are inside that group.
for key in group.keys():
print(key)
data = group[some_key_inside_the_group].value
#Do whatever you want with data
#After you are done
f.close()
.hdf5 파일의 내용을 배열 할 수 있습니다. 다음과 같이 할 수 있습니다.
> import numpy as np
> myarray = np.fromfile('file.hdf5', dtype=float)
> print(myarray)
다음은 keras의 save_weights 함수에 의해 생성 된 .hdf5 파일을 읽고 레이어 이름과 가중치가있는 dict를 반환하는 간단한 함수입니다.
def read_hdf5(path):
weights = {}
keys = []
with h5py.File(path, 'r') as f: # open file
f.visit(keys.append) # append all keys to list
for key in keys:
if ':' in key: # contains data if ':' in key
print(f[key].name)
weights[f[key].name] = f[key].value
return weights
https://gist.github.com/Attila94/fb917e03b04035f3737cc8860d9e9f9b .
철저히 테스트하지는 않았지만 나를 위해 일합니다.
해야 할 일은 데이터 세트를 만드는 것입니다. 빠른 시작 가이드를 살펴보면 데이터 세트를 만들기 위해 파일 객체를 사용해야 함을 보여줍니다. 그래서 f.create_dataset
데이터를 읽을 수 있습니다. 이것은 문서에 설명되어 있습니다.
아래 코드를 사용하여 데이터를 읽고 numpy 배열로 변환하십시오.
import h5py
f1 = h5py.File('data_1.h5', 'r')
list(f1.keys())
X1 = f1['x']
y1=f1['y']
df1= np.array(X1.value)
dfy1= np.array(y1.value)
print (df1.shape)
print (dfy1.shape)
참조 URL : https://stackoverflow.com/questions/28170623/how-to-read-hdf5-files-in-python
'ProgramingTip' 카테고리의 다른 글
어디에서나 BigDecimal로 어떻게 구문 분석을 수행 할 수 있습니까? (0) | 2020.12.15 |
---|---|
pm2 오류 로그에 날짜를 추가하는 방법은 무엇입니까? (0) | 2020.12.15 |
사용하여 단일 페이지에 여러 양식을 사용하여 (0) | 2020.12.15 |
Vim에서 ignorecase를 설정하지 않습니까? (0) | 2020.12.15 |
Git 및 Team Foundation 서버 (0) | 2020.12.15 |