Существует ли быстрый способ запроса отдельных значений столбцов в огромной таблице hdf5 с таблицами? - PullRequest
0 голосов
/ 02 июня 2019

У меня есть файл hdf5 гигантского размера, состоящий из одной таблицы, 26 столбцов, около 3 миллиардов строк (никоим образом он не уместится в памяти). Я много гуглил и не мог найти быстрый способ запроса отдельных значений для столбца или группы столбцов. Есть ли способ быстрее, чем перебирать все строки и строить списки?

1 Ответ

0 голосов
/ 03 июня 2019

Здесь показано, как извлечь столбец данных из таблицы Pytables в массив 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)
...