首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何让你的矩阵运算速度提高4000+倍

    假如说有这样一道题:有一个中国区的海拔数据(DEM),是个二维矩阵,问:如何快速从中挑选出海拔高度大于等于4000米的点并将低于4000米的点赋值为0。...我们先来以正常循环的逻辑来解这道题,方法当然就是双层for循环,在每个点上判断值的大小是否大于等于4000,如果小于4000则将位置赋值为0,代码如下: import copy from cnmaps.sample...for i in range(dem.shape[0]): for j in range(dem.shape[1]): if ndem[i,j] 4000...我们先来定义单次循环体的计算逻辑: def myfilter(dem, threshold=4000): if dem < threshold: return 0 else...并不是,让我们来看看这个例子最快的实现——索引赋值: ndem = copy.deepcopy(dem) %timeit ndem[ndem4000] = 0 结果: 264 µs ± 8.23 µs

    1.8K10
    领券