Generación de muestras por permutación
Como averiguaste en el ejercicio anterior, necesitamos generar una muestra por permutación intercambiando aleatoriamente entradas correspondientes en los arrays semi_times y final_times. Escribe una función con la firma swap_random(a, b) que devuelva arrays en los que índices aleatorios tienen intercambiadas las entradas de a y b.
Este ejercicio forma parte del curso
Casos prácticos de pensamiento estadístico
Instrucciones del ejercicio
- Define una función con la firma
swap_random(a, b)que haga lo siguiente.- Crea un array
swap_indsde la misma longitud que los arrays de entrada donde cada elemento seaTruecon probabilidad 50/50. Pista: usanp.random.random()con el argumento de palabra clavesize=len(a). Cada elemento del resultado que sea menor que 0.5 debe serTrue. - Haz copias de
ayb, llamadasa_outyb_out, respectivamente, usandonp.copy(). - Usa indexación booleana con el array
swap_indspara intercambiar las entradas correspondientes debena_outy deaenb_out. - Devuelve
a_outyb_out.
- Crea un array
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
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