开始使用免费开始使用

生成置换样本

正如您在上一个练习中推导的那样,我们需要通过随机交换 semi_timesfinal_times 两个数组中相同位置的元素来生成一个置换样本。请编写一个签名为 swap_random(a, b) 的函数,返回两个数组,其中若干随机索引位置的 ab 的元素已被交换。

本练习是课程的一部分

统计思维案例研习

查看课程

练习说明

  • 定义一个签名为 swap_random(a, b) 的函数,完成以下操作。
    • 创建一个与输入数组长度相同的数组 swap_inds,其中每个元素以 50/50 的概率为 True。提示:使用 np.random.random(),并设置关键字参数 size=len(a)。结果中小于 0.5 的位置应为 True
    • 使用 np.copy() 分别复制 ab,得到 a_outb_out
    • 使用布尔索引与 swap_inds,将 b 中相应元素交换到 a_out,并将 a 中相应元素交换到 b_out
    • 返回 a_outb_out

交互式实操练习

通过完成这段示例代码来试试这个练习。

def ____(____, ____):
    """Randomly swap entries in two arrays."""
    # Indices to swap
    swap_inds = ____ < ____
    
    # Make copies of arrays a and b for output
    a_out = ____
    b_out = ____
    
    # Swap values
    ____[____] = ____[____]
    ____[____] = ____[____]

    return a_out, b_out
编辑并运行代码