2015-06-20 58 views
0
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设定范围小于

回答

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 
+0

好的你是正确的。大。可悲的是我无法向你提供帮助 – power2