Это обычная вещь, которую люди, начинающие с PyTables, хотят делать. Конечно, это было первое, что I попытался сделать. По состоянию на 2009 год, я не думаю, что эта функциональность была поддержана. Вы можете посмотреть здесь одно решение "Я всегда рекомендую":
http://www.mail-archive.com/pytables-users@lists.sourceforge.net/msg01207.html
Короче, просто поместите каждый VLArray в отдельное место. Если вы сделаете это, возможно, вам не понадобятся VLArrays. Если вы храните отдельные VLArrays для каждой пробной версии (или любой другой), вы можете хранить метаданные в этих VLArrays (гарантированно оставаться синхронизированными с массивом при переименованиях, перемещениях и т. Д.) Или помещать их в таблицу (легче искать).
Но вы также можете выбрать любую временную точку для атома вашего столбца, а затем просто добавить другой столбец для отметки времени. Это позволило бы создать «рваный» массив, который все еще имеет регулярную, повторяющуюся (табличную) структуру в памяти. Например:
Trial Data
1 0.4, 0.5, 0.45
2 0.3, 0.4, 0.45, 0.56
становится
Trial Timepoint Data
1 1 0.4
1 2 0.5
...
2 4 0.56
Данные выше представляют собой одно число, но это может быть, например, атом 4x5x3.
Если сейчас в PyTables поддерживаются вложенные VLArrays, я бы, конечно, хотел бы знать!
В качестве альтернативы, я думаю, что h5py поддерживает полный набор функций HDF5, поэтому, если вы действительно привержены макету вложенных данных, вам может повезти больше. Вы будете терять много приятных функций, хотя! И, по моему опыту, наивные нейробиологи в конечном итоге имеют довольно низкую производительность, поскольку у них нет интеллектуального выбора в pytables для размещения данных, разбиения на фрагменты и т. Д. Пожалуйста, сообщите, если вы идете по этому пути!