【发布时间】:2011-04-06 13:54:50
【问题描述】:
我是一个 python 初学者,我正在尝试平均两个形状为 (1024,1024) 的 NumPy 2D 数组。这样做非常快:
newImage = (image1 + image2) / 2
但是现在图像有一个“掩码”,如果设置为零,某些元素会失效。这意味着如果元素之一为零,则结果元素也应为零。我的简单解决方案是:
newImage = numpy.zeros( (1024,1024) , dtype=numpy.int16 )
for y in xrange(newImage.shape[0]):
for x in xrange(newImage.shape[1]):
val1 = image1[y][x]
val2 = image2[y][x]
if val1!=0 and val2!=0:
newImage[y][x] = (val1 + val2) / 2
但这真的很慢。我没有计时,但它似乎慢了 100 倍。
我也尝试使用 lambda 运算符和“map”,但这不会返回 NumPy 数组。
【问题讨论】:
标签: python arrays matrix numpy