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