Générer des échantillons par permutation
Comme vous l’avez vu dans l’exercice précédent, nous devons générer un échantillon par permutation en échangeant aléatoirement les entrées correspondantes dans les tableaux semi_times et final_times. Écrivez une fonction avec la signature swap_random(a, b) qui renvoie des tableaux où des indices aléatoires ont leurs valeurs échangées entre a et b.
Cet exercice fait partie du cours
Études de cas en pensée statistique
Instructions
- Définissez une fonction avec la signature
swap_random(a, b)qui effectue les opérations suivantes.- Créez un tableau
swap_indsde la même longueur que les tableaux d’entrée, où chaque entrée vautTrueavec une probabilité de 50/50. Indice : utiliseznp.random.random()avec l’argument mot-clésize=len(a). Chaque entrée du résultat strictement inférieure à 0.5 doit êtreTrue. - Faites des copies de
aetb, nommées respectivementa_outetb_out, à l’aide denp.copy(). - Utilisez l’indexation booléenne avec le tableau
swap_indspour échanger les entrées appropriées debdansa_outet deadansb_out. - Retournez
a_outetb_out.
- Créez un tableau
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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