gpt4 book ai didi

python - 将稀疏数组从 numpy 读取到分块 dask 数组

转载 作者:太空宇宙 更新时间:2023-11-03 21:20:26 25 4
gpt4 key购买 nike

有一个大的 3D NumPy 数组(其中大部分为零),我试图将其转换为 Dask 中稀疏数组的分块版本

import sparse
import dask.array as da

input_arr = np.load(...)
chunked_arr = da.from_array(input_arr, (32,32,32)).map_blocks(sparse.COO)

据我所知分块有效,但输出数组保留输入中的所有零,因此 chunked_arr 的大小等于 input_arr 的大小。有没有一种方法可以在省略所有零的同时加载输入?

最佳答案

那么,目前您仍在将所有数据加载到 numpy 数组中,因此它必须适合内存?

理想情况下,您应该使用允许稀疏存储或至少随机访问的存储技术。如今,TileDB 是一个有趣的选择。

今天我可能会将数据存储在 HDF5 或 Zarr 中,并进行适当的压缩以隐藏零的成本,然后调用

x = da.from_array(storage, chunks='auto')
x = x.map_partitions(sparse.COO)

正如上面所说,但存储是提供从磁盘随机访问的东西。

关于python - 将稀疏数组从 numpy 读取到分块 dask 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54310601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com