5

我在 zarr 中有一个简单的对象数组(比如长度 1000)。我想用一个精简的版本替换它,只选择项目的一个子集,使用大小为 1000 的布尔数组指定。我想保持其他所有内容相同(例如,如果这个数组是持久的,我想更改磁盘和内存中的阵列)。我不能简单地重新分配数组:

my_zarr_data = my_zarr_data[:][selected_items]

因为那时我得到了错误ValueError: missing object_codec for object array。另一种选择是制作一个副本,删除所有数据,然后使用 将其从原始数据添加回来append(),但我看不到如何在保持 object_codec 和其他参数相同的同时清除zarr 数组(也许我可以这样做resize(0)?)。目前我正在调整长度,sum(selected_items)然后使用my_zarr_data.set_basic_selection(..., my_zarr_data[:][selected_items]). 那正确吗?有没有一种更有效的方法可以将数组永久重新分配给(比如说)返回值get_mask_selection()

4

0 回答 0