h5py-重塑数据集,如numpy.reshape()

时间:2019-05-17 16:41:31

标签: python python-3.x numpy h5py

我想重塑h5py数据集,就像我可以使用 numpy.reshape()一样。 以下代码仅在我在代码开头使用 numpy.array()时有效。但这仅适用于较小的数据集,如果我使用较大的数据集,则会消耗我的内存。

import h5py
import numpy as np

#load data
h5py_data_path = 'any\path\to\h5pyData\training.data.h5'
t_data = h5py.File(h5py_data_path,'r')
training_data = t_data['training.data']
######################################
#### Don't want to have this (blows up my memory) ####
training_data = np.array(training_data)
######################################

print('training_data    ',training_data.shape)
#out: training_data     (10203, 5, 341)

#reshape data
######################################
#### That works, but only with upper Numpy Code ####
training_data = training_data.reshape(training_data.shape[0], 1, 5, 341)
######################################

print('training_data    ',training_data.shape)
#out: training_data     (10203, 1, 5, 341)

h5py中是否有任何本机方式可以通过其他任何方式重塑?

1 个答案:

答案 0 :(得分:0)

虽然有一个很好的功能,但 H5py 文档是明确的:数据集排名(维数)在创建时是固定的。