生成置换样本
正如您在上一个练习中推导的那样,我们需要通过随机交换 semi_times 和 final_times 两个数组中相同位置的元素来生成一个置换样本。请编写一个签名为 swap_random(a, b) 的函数,返回两个数组,其中若干随机索引位置的 a 与 b 的元素已被交换。
本练习是课程的一部分
统计思维案例研习
练习说明
- 定义一个签名为
swap_random(a, b)的函数,完成以下操作。- 创建一个与输入数组长度相同的数组
swap_inds,其中每个元素以 50/50 的概率为True。提示:使用np.random.random(),并设置关键字参数size=len(a)。结果中小于 0.5 的位置应为True。 - 使用
np.copy()分别复制a和b,得到a_out和b_out。 - 使用布尔索引与
swap_inds,将b中相应元素交换到a_out,并将a中相应元素交换到b_out。 - 返回
a_out和b_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