我有一個 numpy 形狀陣列(224,224,160)和一個相同形狀的布爾掩碼。
我用這樣的掩碼掩蔽陣列:
new = arr[mask]
我希望 new.shape 是224*224*160 = (8028160,)
列印 new.shape 實際上給出了(1300587,)
誰能告訴我這個號碼是從哪里來的?
uj5u.com熱心網友回復:
當您使用掩碼索引陣列時,您會得到一個扁平(即 shape = (N,))陣列,其中僅包含掩碼允許的值。
如果您正在尋找更熊貓風格的掩碼,其中不匹配掩碼的值將被替換,請使用np.where:
np.where(mask, a, np.nan)
這將替換值 where mask == False,np.nan并且回傳陣列的形狀將與原始陣列和掩碼的形狀相同。
正如hpaulj 指出的那樣,new.shape數字1300587是True您的mask. 您應該通過運行獲得相同的數字sum(mask)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/486500.html
