0

这是我关于 Stack Overflow 的第一个问题,请耐心等待。假设我有两个相同形状的数组,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]]

基本上,对于 中的每个元素new_array,该元素有 50% 的机会来自array_0,并且有 50% 的机会来自array_1

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

4

1 回答 1

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)
于 2018-08-17T08:46:41.810 回答