如何基于概率对二进制np.ndarray执行随机变异?

阿德里安·保罗

我有一个用-1和1填充的numpy数组。

如何以给定的突变概率(从-1到1或从1到-1)执行随机突变?

这是我要实现的示例:

>>> arr
array([[-1,  1,  1],
       [-1, -1, -1],
       [ 1, -1,  1]])

>>> mutation(arr, p=0.2)
array([[-1, -1,  1],
       [-1, -1,  1],
       [ 1, -1,  1]])

在这里,索引[0,1]和[1,2]的值被修改。

如果p = 1,则应修改每个值。

迪卡卡

这是一种基于np.random.choice-

def mutation(arr, p_val):
    m = np.random.choice([True,False],size=arr.shape,p=[p_val,1-p_val])
    return np.where(m,-np.sign(arr),arr)

因此,基本上,np.random.choice我们使用值的p_val比率创建一个遮罩True,其余的为False然后,使用此遮罩np.where将选中arr关闭元素,即更改1s-1s,反之亦然,而其余元素保持不变

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何随机变异二进制列表中的5个值?

r以给定概率生成随机二进制结果

Matlab:二进制值随机变量

如何对二进制数组执行一个二进制操作?

除了将要执行的二进制文件之外,如何包含二进制文件?

如何生成随机的二进制图像?

如何使bash从stdin执行ELF二进制文件?

如何执行此Go二进制文件?

如何在bash中执行二进制加法

如何执行二进制数的按位运算?

如何生成长度为 N 的随机二进制数 0 或 1,并可以选择控制出现 0 或 1 的概率?

基于过滤点的变异给出“非数字 agr 到二进制”

生成随机二进制文件

生成随机二进制数

Erlang生成随机二进制

随机创建二进制ID

执行二进制代码

使用原始二进制数据的np.ndarray上的Python3管道I / O失败

gcc编译的二进制文件给出“无法执行二进制文件”

如何重新平衡随机二进制搜索树

如何访问二进制文件随机跳转到固定位置

我如何在JavaScript中随机生成一个二进制数?

如何将随机的二进制信息添加到当前的“坐标”中?(蟒蛇)

如何在Netlogo中创建随机的二进制/布尔变量

如何使用 for 循环限制随机二进制生成?(有问题的更多细节,包括代码)

如何使用标准Ubuntu(Debian)工具执行二进制差异和修补?

如何将机器代码转换为二进制可执行文件?

如何执行存在于不同目录中的二进制文件?

如何使用for循环来计算二进制搜索中正在执行的搜索次数?