Как вырубить / удалить массив zarr - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть простой массив (скажем, длина 1000) объектов в zarr. Я хочу заменить его уменьшенной версией, выбирая только подмножество элементов, как указано, используя логический массив размера 1000. Я хочу оставить все остальное таким же (например, если этот массив является постоянным, я хочуизменить массив на диске, а также в памяти). Я не могу просто переназначить массив:

my_zarr_data = my_zarr_data[:][selected_items]

Потому что тогда я получаю ошибку ValueError: missing object_codec for object array. Другой вариант - сделать копию, удалить все данные, а затем добавить их обратно из оригинала, используя append(), но я не вижу, как очистить массив zarr, сохраняя object_codec и другие. параметры такие же (возможно, я мог бы просто сделать resize(0)?). На данный момент я изменяю размер до длины sum(selected_items), а затем использую my_zarr_data.set_basic_selection(..., my_zarr_data[:][selected_items]). Это правильно? Есть ли более эффективный способ навсегда переназначить массив (скажем) возвращаемое значение из get_mask_selection()?

...