【发布时间】:2013-06-21 10:31:21
【问题描述】:
我在 hdf 文件中有一个大型复合数据数据集。复合数据的类型如下:
numpy.dtype([('Image', h5py.special_dtype(ref=h5py.Reference)),
('NextLevel', h5py.special_dtype(ref=h5py.Reference))])
这样,我创建了一个数据集,其中包含对每个位置的图像和另一个数据集的引用。 这些数据集的维度为 n x n,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 循环更快地填充这些数据集?
提前谢谢你。
【问题讨论】: