產生置換樣本
如同你在上一個練習中推導的,我們需要透過隨機交換 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