有没有一种快速的方法可以使用 pytables 在巨大的 hdf5 table 中查询不同的列值?

Is there a fast way to query distinct column values in a huge hdf5 table with pytables?

我有一个巨大的 hdf5 文件,其中包含一个 table,26 列,大约 30 亿行(内存无法容纳)。我做了很多谷歌搜索,但找不到一种快速的方法来查询一列或一组列的不同值。有没有比遍历所有行和构建列表更快的方法?

这展示了如何从 Pytables Table 中提取一列数据到 Numpy 数组,然后使用 Numpy np.unique() 方法获取一个新的唯一值数组。获取一组唯一值的选项和每个值的计数也显示。

mytable = h5_file.root.YOUR_DATASET

Col1_array = mytable.col('Col1')
# above statement is equivalent to:
Col1_array = mytable.read(field='Col1')

# get array of unique values:
uarray = np.unique(Col1_array)

# if you also want an array of counts for each unique value:
uarray, carray = np.unique(Col1_array, return_counts=True)