我建议使用
array ^= numpy.random.rand(len(array)) < prob
这可能是获得所需结果的最有效方法。它将使用“ xor”对数组进行修改,以反转随机条件求值的条目True
。
为什么我可以采用array的值而不是取反?
您也不能采用数组的真值:
>>> bool(array)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
该not
运营商将暗中给它的操作数转换bool
,然后返回相反的真假值。无法过载not
以执行任何其他行为。要对的NumPy数组求反bool
,可以使用
~array
要么
numpy.logical_not(array)
要么
numpy.invert(array)
虽然。