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