我是一個python初學者,我試圖平均兩個NumPy 2D數組與形狀(1024,1024)。做這樣是相當快的:這個numpy數組爲什麼這麼慢?
newImage = (image1 + image2)/2
但現在的圖像有一個「面具」,如果設置爲0時無效的某些元素。這意味着如果其中一個元素爲零,則生成的元素也應該爲零。我的瑣碎解決方案是:
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運算符和「映射」,但這不會返回一個NumPy數組。
謝謝,這個作品是快。 – Stiefel 2011-04-08 13:26:50