boolean subtract DeprecationWarning

时间:2014-06-14 02:59:17

标签: python numpy duck-typing

我最近升级到numpy 1.9dev。 (为了改进OpenBlas支持)。

我有一些代码x-y xy是来自概率分布的样本。 如果分布是伯努利,则它们是布尔值。 如果分布是高斯分布,则它们是浮点数。

取决于xy后面的路径 可能是bools或浮动。 我不必关心python有鸭子打字。 如果它可以减去,则它是xy

的有效值

我收到了这个警告:

  

DeprecationWarning:numpy boolean subtract(二进制-运算符)   不推荐使用,请使用bitwise_xor(^运算符)或   而是使用logical_xor函数。

我已将警告消失,将其视为一个浮子。 这可能是一件好事,因为它使代码在较低级别更加一致。 (不作为好东西出售)。

采取什么样的正确行动? 我不能使用布尔或按位xor,因为当xy是浮点数时,这将会破坏。 将代码分支设置为xy类型会很难看。

1 个答案:

答案 0 :(得分:1)

这是我的解决方法:

z = (x.astype(np.float32) - y.astype(np.float32)).astype(np.bool)