CommencerCommencer 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 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

Afficher le cours

Instructions

  • Définissez une fonction avec la signature swap_random(a, b) qui effectue les opérations suivantes.
    • Créez un tableau swap_inds de la même longueur que les tableaux d’entrée, où chaque entrée vaut True avec une probabilité de 50/50. Indice : utilisez np.random.random() avec l’argument mot-clé size=len(a). Chaque entrée du résultat strictement inférieure à 0.5 doit être True.
    • Faites des copies de a et b, nommées respectivement a_out et b_out, à l’aide de np.copy().
    • Utilisez l’indexation booléenne avec le tableau swap_inds pour échanger les entrées appropriées 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 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
Modifier et exécuter le code