numpy - 解决 numpy 的 MemoryException 的正确方法是什么?
问题描述
在我的程序计算期间,使用 PCRaster 的 pcr2numpy 工具多次生成 numpy 数组。对于某些栅格它有效,但现在我得到了
numpy.core._exceptions.MemoryError: Unable to allocate 140. MiB for an array with shape (7411, 4969) and data type float32
这样做的真正原因是什么,我应该怎么做:使用后删除数组,或者使用具有更多 NaN 值的数组?
这是出现问题的代码的一部分:
allpoints = cover(firstpoints1,secondpoints)
allpoints2 = ifthen(allpoints,self.upstreamup)
array1 = pcr2numpy(allpoints2,np.nan)
array2 = pcr2numpy(ifthen(allpoints, newpointts),np.nan)
array10 = array1[~np.isnan(array1)]
array20 = array2[~np.isnan(array2)]
meann = np.nanmean(array2)
cover 是用于合并两个栅格的命令,其中 NaN 值被替换 ifthen 是一个仅采用 True 值的命令,其他一切都使 NaN 值 pcr2numpy 从栅格创建一个 numpy 数组
解决方案
推荐阅读
- reactjs - 使用rectjs中的功能性反应钩子在表单提交上显示加载图像的问题
- javascript - 为什么 moment(date).isValid() 返回错误的结果
- git - 我如何 git clone 私有存储库?错误:无法解析主机
- python - 如何在 Python 中一次将图像文件加载到具有 Exif 方向支持的多个图像的 numpy 数组中?
- python - 如何从值与另一列匹配的一列中获取最大值?
- c++ - 在 C++ 中是否有像 istream::putback 这样的字符串的函数?
- javascript - 用按钮增加一个随机数?
- c++ - “std::forward”和“std::move”确实不会生成代码吗?
- python - 当我尝试按降序对值进行排序时出错
- html - 如何将对象的属性放在 AJAX 中的 href 中?