Generare campioni per permutazione
Come hai visto nell'esercizio precedente, dobbiamo generare un campione per permutazione scambiando in modo casuale le voci corrispondenti negli array semi_times e final_times. Scrivi una funzione con firma swap_random(a, b) che restituisca array in cui indici casuali hanno le voci in a e b scambiate.
Questo esercizio fa parte del corso
Casi di studio nel pensiero statistico
Istruzioni dell'esercizio
- Definisci una funzione con firma
swap_random(a, b)che esegua quanto segue.- Crea un array
swap_indsdella stessa lunghezza degli array di input in cui ogni elemento èTruecon probabilità 50/50. Suggerimento: usanp.random.random()con l'argomentosize=len(a). Ogni elemento del risultato che è minore di 0.5 dovrebbe essereTrue. - Crea copie di
aeb, chiamate rispettivamentea_outeb_out, usandonp.copy(). - Usa l'indicizzazione booleana con l'array
swap_indsper scambiare le voci appropriate dibina_oute diainb_out. - Restituisci
a_outeb_out.
- Crea un array
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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