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