1
是否可以將以下代碼重寫爲lambda表達式?帶雙環的Python lambda
for h in range(height):
for w in range(width):
if maskImg[h][w] > 0:
maskImg[h][w] = srcImg[h][w]
是否可以將以下代碼重寫爲lambda表達式?帶雙環的Python lambda
for h in range(height):
for w in range(width):
if maskImg[h][w] > 0:
maskImg[h][w] = srcImg[h][w]
這是不是真的等同於你,因爲這種表達不到位,但你使用類似達到同樣的矩陣:
lambda_function = lambda height, width, src, mask: [[src[h][w] if mask[h][w] > 0 else mask[h][w] for w in range(width)] for h in range(height)]
但我不會建議使用它,永遠。如果你在追趕速度,你應該使用Numpy這些東西。假設你src
和mask
存儲在Python的名單,你會得到相同的結果太多,要快得多做:
import numpy as np
src_np = np.array(src)
mask_np = np.array(mask)
mask_np[mask_np > 0] = src_np[mask_np > 0]
這在我的電腦上是比〜你的解決方案快50倍。
謝謝!它有很多幫助。 – Ovilia 2015-04-01 08:42:11
你爲什麼想要? – tzaman 2015-04-01 05:55:28
@tzaman加快速度? – Ovilia 2015-04-01 05:58:44
Lambda表達式通常不會讓事情變得更快。 – tzaman 2015-04-01 06:01:45