无法使用 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
我正在使用以下代码创建数组并以 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