亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Numpy 替換值

Numpy 替換值

慕桂英4014372 2022-12-20 12:28:44
我得到了一個 rgb 圖像(h 和 w 不是常數),我想將特定范圍(rgb 范圍)內的所有像素都涂成綠色。我得到了大部分代碼的工作,我掙扎的事情:假設我得到以下圖像:arr = np.zeros((4,4,3))arr[0,0] = [2,3,4]arr[1, 1] = [1, 2, 3]讓我們假設條件是滿足以下規則的所有像素:t = np.all((arr >= [1,2,3])&(arr <= [1,4,4]),axis = 2)print(t)[[False False False False][False  True False False][False False False False][False False False False]]t 中的每個值代表 arr 中的一個像素,如果它是真的,我想將 arr 中的相應像素更改為 [10,10,10]。意思是我希望輸出是:[[[2. 3. 4.]  [0. 0. 0.]  [0. 0. 0.]  [0. 0. 0.]] [[0. 0. 0.]  [10. 10. 10.]  [0. 0. 0.]  [0. 0. 0.]] [[0. 0. 0.]  [0. 0. 0.]  [0. 0. 0.]  [0. 0. 0.]] [[0. 0. 0.]  [0. 0. 0.]  [0. 0. 0.]  [0. 0. 0.]]]我要求一種麻木的方式來做到這一點。
查看完整描述

1 回答

?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

IIUC 你想做的事:


arr[t] = [10,10,10]

例子:


>>> arr = np.zeros((4,4,3))

>>> arr[0,0] = [2,3,4]

>>> arr[1,1] = [1,2,3]

>>> t = np.all((arr >= [1,2,3])&(arr <= [1,4,4]),axis = 2)

>>> arr[t] = [10,10,10]

>>> arr

array([[[ 2.,  3.,  4.],

        [ 0.,  0.,  0.],

        [ 0.,  0.,  0.],

        [ 0.,  0.,  0.]],


       [[ 0.,  0.,  0.],

        [10., 10., 10.],

        [ 0.,  0.,  0.],

        [ 0.,  0.,  0.]],


       [[ 0.,  0.,  0.],

        [ 0.,  0.,  0.],

        [ 0.,  0.,  0.],

        [ 0.,  0.,  0.]],


       [[ 0.,  0.,  0.],

        [ 0.,  0.,  0.],

        [ 0.,  0.,  0.],

        [ 0.,  0.,  0.]]])


查看完整回答
反對 回復 2022-12-20
  • 1 回答
  • 0 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號