CommencezCommencez gratuitement

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

Voir le cours

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_inds de la même longueur que les tableaux d'entrée où chaque élément est True avec une probabilité de 50/50. Indice : utilisez np.random.random() avec l'argument de mot-clé size=len(a). Chaque élément du résultat qui est inférieur à 0.5 doit être True.
    • Faites des copies de a et b, appelées a_out et b_out, respectivement, à l'aide de np.copy().
    • Utilisez l'indexation booléenne avec le tableau swap_inds pour échanger les éléments appropriés de b dans a_out et de a dans b_out.
    • Retournez a_out et b_out.

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
Modifier et exécuter le code