我有兩個相同形狀的 numpy ndarrays。
A = [[12, 25, 6],
[28, 52, 74]]
B = [[100, 2, 4],
[2, 12, 14]]
我的目標是用 A 中的 0 替換 B 中的值 <= 5 的每個元素。所以我的結果應該是:
# So C[0][0] = 12 because A[0][0] = 12 and B[0][0] >= 5
C = [[12, 0, 0],
[0, 52, 74]]
有沒有一種有效的方法來做到這一點?對于背景關系,這是嘗試對影像進行一些背景減法,并將所有背景替換為黑色。
uj5u.com熱心網友回復:
干得好:
A = np.array([[12, 25, 6],[28, 52, 74]])
B = np.array([[100, 2, 4],[2, 12, 14]])
A = np.where(B <= 5, 0, A)
輸出:
array([[12, 0, 0],
[ 0, 52, 74]])
uj5u.com熱心網友回復:
如果你想要一個新陣列,我會這樣做:
C = A.copy()
C[B <= 5] = 0
np.where()無論如何,它比我的機器快一點。
如果你不介意覆寫A,就去做A[B <= 5] = 0。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/325910.html
標籤:Python 麻木的 numpy-ndarray 背景减法
上一篇:僅在間隔內創建鍵并添加相同鍵的值
