我最近升级到numpy 1.9dev。 (为了改进OpenBlas支持)。
我有一些代码x-y
x
和y
是来自概率分布的样本。
如果分布是伯努利,则它们是布尔值。
如果分布是高斯分布,则它们是浮点数。
取决于x
和y
后面的路径
可能是bools或浮动。
我不必关心python有鸭子打字。
如果它可以减去,则它是x
和y
我收到了这个警告:
DeprecationWarning:numpy boolean subtract(二进制
-
运算符) 不推荐使用,请使用bitwise_xor(^
运算符)或 而是使用logical_xor函数。
我已将警告消失,将其视为一个浮子。 这可能是一件好事,因为它使代码在较低级别更加一致。 (不作为好东西出售)。
采取什么样的正确行动?
我不能使用布尔或按位xor,因为当x
和y
是浮点数时,这将会破坏。
将代码分支设置为x
和y
类型会很难看。
答案 0 :(得分:1)
这是我的解决方法:
z = (x.astype(np.float32) - y.astype(np.float32)).astype(np.bool)