可重現的代碼:
x = np.array([0.9, 0.9, 1])
y = np.array([0, 0, 1])
y[x<1] = 1 - x[x<1]
print(y)
輸出
array([0, 0, 1])
期望的輸出
array([0.1, 0.1, 1])
我知道np.where會給我想要的輸出。我只是好奇為什么布爾索引在這種情況下不起作用。
uj5u.com熱心網友回復:
您必須為 y 指定 dtype:
y = np.array([0, 0, 1], dtype=np.float64)
當您沒有指定時,它假定整數作為 dtype。因此,對此的每次修改都將轉換為該陣列的原始 dtype。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488935.html
下一篇:計算矩陣中相鄰元素的數量
