Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 组的Zarr多线程读取_Python_Multithreading_Hdf_Zarr - Fatal编程技术网

Python 组的Zarr多线程读取

Python 组的Zarr多线程读取,python,multithreading,hdf,zarr,Python,Multithreading,Hdf,Zarr,不确定这个问题是否有意义/是否相关。我将zarr数据分组存储在磁盘上,例如 group = zarr.group() d1 = group.create_dataset('baz', shape=100, chunks=10) d2 = group.create_dataset('foo', shape=100, chunks=10) 现在组是可编辑的,所以我可以迭代它并从所有组读取数据: all_data = [group[g][:] for g in group] 有没有一种方法可以使用

不确定这个问题是否有意义/是否相关。我将zarr数据分组存储在磁盘上,例如

group = zarr.group()
d1 = group.create_dataset('baz', shape=100, chunks=10)
d2 = group.create_dataset('foo', shape=100, chunks=10)
现在组是可编辑的,所以我可以迭代它并从所有组读取数据:

all_data = [group[g][:] for g in group]
有没有一种方法可以使用多线程从组中读取所有数据以提高速度?我知道在一个数组中可以使用多线程来读写数据


假设按组读取数据对我来说太慢,我是否应该将所有组放在一个数据数组容器中?我想我想知道除了一个组织容器之外,组的功能是什么。因为假设每个组都包含相似的数据,理论上,您可以将另一个轴添加到组的numpy数组中,并将所有组存储在一个大数组中。

组主要用作组织容器。一个组可以包含任意数量的数组,其中每个数组可能具有不同的形状和/或数据类型,因此它们是一种灵活的数据组织方式。如果您的数组都是相同的形状和数据类型,那么您可以按照您的建议,将它们全部堆叠到一个多维数组中。但是,如果数据总量相同,那么无论是在一个组中有多个数组,还是在一个数组中有所有数据,我都不希望读取速度有很大的不同

如果要将组中的所有阵列读取到内存中,并且使用默认的压缩程序Blosc,那么在解压缩期间,这将已经使用多个线程。Blosc通常在利用可用内核方面做得很好,因此,如果再添加任何多线程,您可能无法获得很大的改进