Я ищу способ получить отсортированные записи из таблицы hdf
. Вот питон MWE:Как получить отсортированные записи из таблицы hdf
import tables
import numpy as np
class Measurement(tables.IsDescription):
time = tables.Float64Col()
value = tables.Float64Col()
h5 = tables.open_file('test.hdf', 'w')
h5.create_table('/', 'test', Measurement)
table = h5.root.test
data = np.array([(0, 6), (5, 1), (1, 8)], dtype=[('time', '<f8'), ('value', '<f8')])
table.append(data)
table.cols.time.createCSIndex()
Теперь я хотел бы получить все записи с time > 0
, отсортированные по time
. Если я:
table.read_where('time > 0')
, то он получает:
array([(5.0, 1.0), (1.0, 8.0)], dtype=[('time', '<f8'), ('value', '<f8')])
, не отсортированных по time
. Если я попытаюсь использовать read_sorted
, тогда я получу всю таблицу вместо подмножества (аргумент условия отсутствует для read_sorted
).
Какова обычная практика? Должен ли я гарантировать, что мои таблицы хранятся в базе данных? Или я должен отсортировать полученный набор после read_where
?