Как вырубить / удалить массив zarr

У меня есть простой массив (скажем, длиной 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()?

0 ответов

Другие вопросы по тегам