Aan de slagGa gratis aan de slag

Permutatiesteekproeven genereren

Zoals je in de vorige oefening hebt uitgewerkt, moeten we een permutatiesteekproef genereren door willekeurig overeenkomende elementen in de arrays semi_times en final_times te verwisselen. Schrijf een functie met de signatuur swap_random(a, b) die arrays retourneert waarbij op willekeurige indices de elementen in a en b zijn omgewisseld.

Deze oefening maakt deel uit van de cursus

Casestudies in statistisch denken

Cursus bekijken

Oefeninstructies

  • Definieer een functie met de signatuur swap_random(a, b) die het volgende doet.
    • Maak een array swap_inds met dezelfde lengte als de invoerarrays, waarbij elk element met 50/50-kans True is. Hint: gebruik np.random.random() met het sleutelwoordargument size=len(a). Elk element in het resultaat dat kleiner is dan 0.5 moet True zijn.
    • Maak kopieën van a en b, respectievelijk a_out en b_out, met np.copy().
    • Gebruik booleaanse indexering met de array swap_inds om de juiste elementen van b in a_out en van a in b_out te verwisselen.
    • Retourneer a_out en b_out.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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
Code bewerken en uitvoeren