使用http://dask.pydata.org/en/latest/array-creation.html
上的示例filenames = sorted(glob('2015-*-*.hdf5')
dsets = [h5py.File(fn)['/data'] for fn in filenames]
arrays = [da.from_array(dset, chunks=(1000, 1000)) for dset in dsets]
x = da.concatenate(arrays, axis=0) # Concatenate arrays along first axis
我无法理解下一行,以及它是否是“dask数组”的dask_array或“正常”np数组,它指向与返回的所有hdf5文件中的数据集一样多的dask数组。 / p>
作为da.from_array
的结果,在文件读取阶段期间是否有任何性能(基于线程或内存)的增加,或者仅当您连接到dask数组x
时,您应该期望改进
答案 0 :(得分:1)
void segregate0and1(int arr[], int size)
{
/* Initialize left and right indexes */
int left = 0, right = size - 1;
while (left < right)
{
/* Increment left index while we see 0 at left */
while (arr[left] == 0 && left < right)
left++;
/* Decrement right index while we see 1 at right */
while (arr[right] == 1 && left < right)
right--;
/* If left is smaller than right then there is a 1 at left
and a 0 at right. Exchange arr[left] and arr[right]*/
if (left < right)
{
arr[left] = 0;
arr[right] = 1;
left++;
right--;
}
}
}
列表中的对象都是dask数组,每个文件对应一个。
arrays
对象也是一个dask数组,它结合了x
列表中dask数组的所有结果。它不是dask数组的dask.array,它只是一个具有更大第一维的扁平dask数组。
读取数据的性能可能不会提高。您可能受磁盘带宽的I / O限制。在这种情况下,大多数人都在使用dask.array,因为他们拥有的数据多于可以方便地放入RAM的数据。如果这对你没有价值,那么我会坚持使用NumPy。