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 au hasard des éléments correspondants dans les tableaux semi_times et final_times. Écrivez une fonction dont la signature est swap_random(a, b) qui retourne des tableaux où des indices choisis au hasard ont vu leurs éléments dans a et b échangés.
Cette activité fait partie du cours
Études de cas en pensée statistique
Instructions de l’exercice
- Définissez une fonction dont la signature est
swap_random(a, b)qui fait ce qui suit.- Créez un tableau
swap_indsde la même longueur que les tableaux d'entrée où chaque élément estTrueavec une probabilité de 50/50. Indice : utiliseznp.random.random()avec l'argument de mot-clésize=len(a). Chaque élément du résultat qui est inférieur à 0.5 doit êtreTrue. - Faites des copies de
aetb, appeléesa_outetb_out, respectivement, à l'aide denp.copy(). - Utilisez l'indexation booléenne avec le tableau
swap_indspour échanger les éléments appropriés debdansa_outet deadansb_out. - Retournez
a_outetb_out.
- Créez un tableau
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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