Numpy 无法使用dask存储阵列

Numpy 无法使用dask存储阵列,numpy,dask,h5py,Numpy,Dask,H5py,我使用以下代码创建一个数组,并以hdf5格式顺序存储结果。我正在查看dask文档,建议使用dask.store来存储在类似我的函数中生成的数组。但是我收到一个错误:dask没有属性存储 我的代码: import os import numpy as np import time import concurrent.futures import multiprocessing from itertools import product import h5py import dask as

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

我的代码:

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存储结果?
请忽略平均值(数组)函数。这是为了在数据生成后我想尝试的东西

正如评论中所建议的,您目前正在这样做

import dask as da
你什么时候可能想这么做

import dask.array as da

如果没有
dask
d[…]=a
就足够了。在循环中,您希望
f.close()
。请注意,这不会进行顺序写入。每次迭代都将一个新的
a
数据写入
/data
。文档
存储的
dask
页面定义:
import dask.array as da
,感谢您的建议。对不起,我忽略了进口。我会试试这个。肯定很有帮助!:)