可复制代码:
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
会得到我想要的输出。我只是好奇为什么布尔索引在这种情况下不起作用。
必须指定y的dtype:
y = np.array([0, 0, 1], dtype=np.float64)
当你没有指定它时,它假设整数作为dtype。因此,对这个数组的每次修改都将转换为该数组的原始dtype。