无法使用 dask 存储数组

Cannot store an array using dask

我正在使用以下代码创建数组并以 hdf5 格式顺序存储结果。我正在查看 dask 文档,并建议使用 dask.store 来存储在像我这样的函数中生成的数组。但是我收到一个错误:dask has no attribute store

我的代码:

import os 
import numpy as np 
import time 
import concurrent.futures 
import multiprocessing
from itertools import product
import h5py
import dask as da


def mean_py(array):
    start_time = time.time() 

    x = array.shape[1] 
    y = array.shape[2] 
    values = np.empty((x,y), type(array[0][0][0]))
    for i in range(x):
        for j in range(y): 
            values[i][j] = ((np.mean(array[:,i,j]))) 
    end_time = time.time() 
    hours, rem = divmod(end_time-start_time, 3600)
    minutes, seconds = divmod(rem,60) 
    print("{:0>2}:{:0>2}:{:05.2f}".format(int(hours), int(minutes), int(seconds)))

    print(f"{'.'*80}")
    return values 

def generate_random_array():
    a = np.random.randn(120560400).reshape(10980,10980)
    return a


def generate_array(nums):

    for num in range(nums):
        a = generate_random_array()
        f = h5py.File('test_db.hdf5')
        d = f.require_dataset('/data', shape=a.shape, dtype=a.dtype)
        da.store(a, d)


start = time.time() 

generate_array(8)

end = time.time()

print(f'\nTime complete: {end-start:.2f}s\n')

我应该使用 dask 来完成这样的任务,还是建议直接使用 h5py 存储结果? 请忽略 mean_py(array) 函数。这是我想在数据生成后尝试的东西。

根据评论中的建议,您目前正在执行此操作

import dask as da

当您可能打算这样做时

import dask.array as da