Numpy集合范围,其中小于 def updatemap(depthmap,p1,p2,value): 地图=深度地图[0:580,p1[0]:p2[0]] 映射[映射

Numpy集合范围,其中小于 def updatemap(depthmap,p1,p2,value): 地图=深度地图[0:580,p1[0]:p2[0]] 映射[映射,numpy,Numpy,这是我目前的做法。但它需要我复制一个范围,然后设置值小于的范围,然后复制回来。复印会使速度变慢。有什么语法可以使用吗?假设depthmap是一个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 实际上并没有复制。与列表

这是我目前的做法。但它需要我复制一个范围,然后设置值小于的范围,然后复制回来。复印会使速度变慢。有什么语法可以使用吗?

假设
depthmap
是一个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
实际上并没有复制。与列表和元组不同,NumPy切片创建原始数组的视图。因此,下一行:

maps = depthmap[0:580,p1[0]:p2[0]]
这是多余的。您只需删除它:

depthmap[0:580,p1[0]:p2[0]] = maps
def updatemap(depthmap,p1,p2,value):
地图=深度地图[0:580,p1[0]:p2[0]]
映射[映射<值]=值
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