Numpy设定范围小于

时间:2015-06-20 06:46:44

标签: numpy

def updatemap(depthmap, p1, p2, value):
    maps = depthmap[0:580,p1[0]:p2[0]]
    maps[maps < value] = value
    depthmap[0:580,p1[0]:p2[0]] = maps

这是我目前的做法。但它需要我复制范围,然后设置值小于的范围,然后将其复制回来。复制会使它变慢。我可以使用任何语法吗?

1 个答案:

答案 0 :(得分:2)

假设depthmap是NumPy数组,则此部分:

maps = depthmap[0:580,p1[0]:p2[0]]

实际上并不复制。与列表和元组不同,NumPy切片创建原始数组的视图。因此,下一行:

maps[maps < value] = value

修改原始depthmap数组,以及之后的行:

depthmap[0:580,p1[0]:p2[0]] = maps

是多余的。你可以删除它:

def updatemap(depthmap, p1, p2, value):
    maps = depthmap[0:580,p1[0]:p2[0]]
    maps[maps < value] = value