我需要将多个数据集合并到另一个属于最终文件的数据集中,每个数据集都包含在一个单独的文件中。当在最终的数据集中复制时,部分数据集中的数据顺序不会被保留 - 部分数据集中的数据通过索引“映射”到最终数据集中。我创建了两个列表,final_indices和partial_indices,并写道:
final_dataset = final_hdf5file['dataset']
partial_dataset = partial_hdf5file['dataset']
# here partial ad final_indices are lists.
final_dataset[final_indices] = partial_dataset[partial_indices]
这个问题是性能非常糟糕 - 原因是final_和partial_indices都是列表。我的解决方法是从最终和部分数据集创建两个np数组,并使用np数组作为索引。
final_array = np.array(final_dataset)
partial_array = np.array(partial_dataset)
# here partial ad final_indices are nd arrays.
final_array[final_indices] = partial_array[partial_indices]
然后将最终数组重新写入最终数据集。
final_dataset[...] = final_array
然而,在我看来这样做并不优雅。
是否可以在h5py数据集中使用np.arrays作为索引?