是否可以使用pytables快速查询巨大的hdf5表中的不同列值?

时间:2019-06-02 20:20:54

标签: hdf5 pytables

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

1 个答案:

答案 0 :(得分:0)

这显示了如何从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)