開始使用免費開始

產生置換樣本

如同你在上一個練習中推導的,我們需要透過隨機交換 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_indsb 中對應的元素交換到 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
編輯並執行程式碼