Permutation Samples erzeugen
Wie du in der letzten Übung herausgefunden hast, müssen wir ein Permutationssample erzeugen, indem wir die entsprechenden Einträge in den Arrays semi_times und final_times zufällig vertauschen. Schreibe eine Funktion mit der Signatur swap_random(a, b), die Arrays zurückgibt, in denen an zufälligen Indizes die Einträge von a und b vertauscht wurden.
Diese Übung ist Teil des Kurses
Fallstudien zum statistischen Denken
Anleitung zur Übung
- Definiere eine Funktion mit der Signatur
swap_random(a, b), die Folgendes tut.- Erstelle ein Array
swap_indsmit derselben Länge wie die Eingabearrays, wobei jeder Eintrag mit 50/50-WahrscheinlichkeitTrueist. Hinweis: Verwendenp.random.random()mit dem Schlüsselwortargumentsize=len(a). Jeder Eintrag im Ergebnis, der kleiner als 0.5 ist, sollTruesein. - Erstelle Kopien von
aundb, genannta_outbzw.b_out, mitnp.copy(). - Verwende boolesches Indizieren mit dem Array
swap_inds, um die entsprechenden Einträge vonbina_outund vonainb_outzu vertauschen. - Gib
a_outundb_outzurück.
- Erstelle ein Array
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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