随机混合两个Numpy数组

时间:2018-08-17 07:43:19

标签: arrays numpy random mixing crossover

这是我对Stack Overflow的第一个问题,请多多包涵。假设我有两个形状相同的数组<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.10/lodash.min.js"></script>X

Y

我想创建一个函数import numpy as np X = np.array(([0, 0], [0, 0]), dtype=float) X = np.array(([1, 1], [1, 1]), dtype=float) ,它将随机地将数组混合在一起,就像这样:

mix_arrays(X, Y)

这是它可能返回的内容:

def mix_arrays(array_0, array_1)
    # magic
    new_array =  # ...
    return new_array

基本上,对于mix_arrays(X, Y) # Could Return: # [[0, 1], # [1, 1]] # or: # [[1, 0], # [0, 1]] # or: # [[0, 0], # [1, 1]] 中的每个元素,该元素有50%的机会来自new_array,有50%的机会来自array_0

我确定这个问题已经存在,但是在堆栈溢出时找不到。预先感谢您的宝贵时间!

1 个答案:

答案 0 :(得分:1)

只需使用np.where

def random_mix(X, Y):
    choice = np.random.randint(2, size = X.size).reshape(X.shape).astype(bool)
    return np.where(choice, X, Y)