我在 hdf 文件中有大量的复合数据数据集。复合数据的类型如下所示:
numpy.dtype([('Image', h5py.special_dtype(ref=h5py.Reference)),
('NextLevel', h5py.special_dtype(ref=h5py.Reference))])
有了它,我创建了一个数据集,其中引用了每个位置的图像和另一个数据集。这些数据集的维度为 nxn,n 通常至少为 256,但更有可能 > 2000。我必须最初用相同的值填充这些数据集的每个位置:
[[(image.ref, dataset.ref)...(image.ref, dataset.ref)],
.
.
.
[(image.ref, dataset.ref)...(image.ref, dataset.ref)]]
我尽量避免用两个 for 循环填充它,例如:
for i in xrange(0,n):
for j in xrange(0,n):
daset[i,j] =(image.ref, dataset.ref)
因为性能很差。所以我正在寻找类似numpy.fill
, numpy.shape
, numpy.reshape
, numpy.array
,numpy.arrange
等的东西[:]
。我以各种方式尝试了这些函数,但它们似乎都只适用于数字和字符串数据类型。有什么方法可以比 for 循环更快地填充这些数据集?
先感谢您。