gpt4 book ai didi

numpy - 加速 NumPy 中的代码

转载 作者:行者123 更新时间:2023-12-02 08:36:15 24 4
gpt4 key购买 nike

我有二维 numpy 数组 (raster_data),栅格大小为 100 万 * 100 万。我想将该栅格分为两类,如下所示:

class_A = np.where((raster_data >= 5.23) & (raster_data < 8.55),raster_data,np.nan)
class_B = np.where((raster_data >= 8.55) & (raster_data < 10.0),raster_data,np.nan)

但是,由于数据量非常大,我收到内存错误。我怎样才能仍然根据需要对该栅格进行分类?我已经尝试过使用 16GB RAM 和 64 位 NumPy。

最佳答案

您可以尝试 bool 索引和就地操作来节省内存:

>>> class_A = raster_data.copy()
>>> class_B = raster_data.copy()
>>> mask = raster_data < 5.23
>>> mask |= raster_data >= 8.55
>>> class_A[mask] = np.nan
>>> mask = raster_data < 8.55
>>> mask |= raster_data >= 10
>>> class_B[mask] = np.nan

关于numpy - 加速 NumPy 中的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21154726/

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