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
Oefeninstructies
- Definieer een functie met de signatuur
swap_random(a, b)die het volgende doet.- Maak een array
swap_indsmet dezelfde lengte als de invoerarrays, waarbij elk element met 50/50-kansTrueis. Hint: gebruiknp.random.random()met het sleutelwoordargumentsize=len(a). Elk element in het resultaat dat kleiner is dan 0.5 moetTruezijn. - Maak kopieën van
aenb, respectievelijka_outenb_out, metnp.copy(). - Gebruik booleaanse indexering met de array
swap_indsom de juiste elementen vanbina_outen vanainb_outte verwisselen. - Retourneer
a_outenb_out.
- Maak een array
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