- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试处理一个大堆栈(我从 landsat 获取数组并制作堆栈,像 3d 矩阵一样时空),这是一个小例子:
import dask.array as da
import numpy as np
da_list = [da.from_array(np.full((int(1e3), int(1e3)), fill), (1000,1000)) for fill in [1,2,3,np.nan]]
stack = da.dstack(da_list)
print(da.nanmean(stack, axis=2).compute())
这个过程很好,但是它将整个堆栈加载到进程的内存中,如果堆栈更大,如下所示:
import dask.array as da
import numpy as np
da_list = [da.from_array(np.full((int(1e5), int(1e5)), fill), (1000,1000)) for fill in [1,2,3,np.nan]]
stack = da.dstack(da_list)
print(da.nanmean(stack, axis=2).compute())
但是这需要大量的内存用于进程,并行进程的最佳方法是什么并且不需要大量的内存用于进程?谢谢
最佳答案
首先,如果您确实想要np.full
,则应该使用da.full
。不过,我假设您只是使用 np.full 作为生成 numpy 数组的其他函数的示例。
答案是你不能立即调用你的函数,你需要延迟调用它,直到你真正需要结果。为此,请使用 dask.delayed
import dask.array as da
import numpy as np
from dask import delayed
delayed_list = [delayed(np.full)((1000, 1000), fill)
for fill in [1, 2, 3, np.nan]]
da_list = [da.from_delayed(d, shape=(1000, 1000), dtype=float)
for d in delayed_list]
stack = da.stack(da_list, axis=2)
>>> stack
dask.array<stack-0..., shape=(1000, 1000, 4), dtype=float64, chunksize=(1000, 1000, 1)>
到目前为止,您还没有真正完成任何工作。您从未调用过 np.full (或任何您的函数)。 Dask 仅在您指定后才开始调用这些函数,例如当您调用 .compute()
时。然而,它会按顺序调用这些函数,以便希望它可以在调用更多之前将一些大数组处理成小数组(例如通过使用nanmean
)。
这篇博文可能提供更多信息:http://matthewrocklin.com/blog/work/2017/01/17/dask-images
关于python - 使用 daa 深度处理大堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42214714/
假设 CPU 每秒可以处理 10^8 次操作。假设您必须对包含 10^6 个元素的数组进行排序? 插入排序和合并排序所花费的时间是多少小时? 想知道如何计算时间。 最佳答案 所提供的信息不足以给出问题
我正在编写一个 Z80 仿真器,但一直试图理解小数调整指令对某些操作数的作用。这些操作码在真实 Z80 上的结果(在寄存器 A 和 F 中)是什么? LD A,1h ADD A,99h DAA
在下面的链接中, http://www.z80.info/z80syntx.htm#DAA 我对设置 H 标志的条件感到困惑。描述说要看表,但不像 C 在 DAA 之后有 C 列,对于 H 在 DAA
我尝试处理一个大堆栈(我从 landsat 获取数组并制作堆栈,像 3d 矩阵一样时空),这是一个小例子: import dask.array as da import numpy as np da_
本周,我注意到我的团队 Azure 门户上有一个持续的网络作业。 团队中没有人表示他们已经部署了它,或者熟悉它。我找到了这个博客: https://azure.microsoft.com/en-ca/
我想首先说明我是一位经验丰富的程序员,尤其是 Java 已经使用了 8 年。 为了加深对硬件操作和操作系统主题的理解,我决定编写一个简单的 Gameboy 模拟器。在短短几天内编写了核心功能后,我测试
我是一名优秀的程序员,十分优秀!