python - 在 Python 中创建 HDF5 数据集时如何处理可变大小的数组?

标签 python variables multidimensional-array size hdf5

当多维数组的一维大小不固定时,如何创建 HDF5 数据集。我尝试了以下玩具代码,但似乎我在这里遗漏了一些要点。

import numpy as np

import h5py


Polyline=h5py.special_dtype(vlen=np.float32)

f=h5py.File('dataset.hdf5', mode='w')

var_features=f.create_dataset('var_features', (10,), dtype=Polyline )

features = np.empty(shape=(10,), dtype=Polyline)

for i in range(10):

    a=10+i*2
    features[i]=np.arange(a).reshape(a/2,2) 

var_features[...]=features

print features[0].shape 

print var_features[0].shape

最佳答案

这很简单,只需创建具有一个或多个 None 值的 maxsize 属性的数据集。

是这样的:

import h5py
import numpy as np

fff = h5py.File('test1.h5','w')
fff.create_dataset('test_resize',(100,100),maxshape=(None,None),chunks=(10,10))
fff['test_resize'][:] = np.random.random((100,100))
fff.flush()
fff['test_resize'].resize((150,100))
fff['test_resize'][100:150,:] = np.ones((50,100))
fff.close()

关于python - 在 Python 中创建 HDF5 数据集时如何处理可变大小的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36198200/

相关文章:

python - Django 用户身份验证和呈现由该特定用户创建的内容?

python - 将制表符分隔值 (TSV) 文件合并到 Excel 2007 (XLSX) 电子表格中

python - Pandas 从索引到系列的隐式类型转换

c# - 在 C# 中动态处理变量

c++ - 使用 std::swap 交换二维数组中的行。它是如何工作的?

python - 使用 NLTK 和 pandas 按 3 个句子对文本进行标记

Javascript |将字符串变量传递给 onclick 事件不起作用

c++ - 存储坐标的最佳方式 : struct of uints or double?

java - 围绕单个位置搜索二维数组

python - SQLAlchemy 中的 PostgreSQL 多维数组