EmpezarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Define una función con la firma swap_random(a, b) que haga lo siguiente.
    • Crea un array swap_inds de la misma longitud que los arrays de entrada donde cada elemento sea True con probabilidad 50/50. Pista: usa np.random.random() con el argumento de palabra clave size=len(a). Cada elemento del resultado que sea menor que 0.5 debe ser True.
    • Haz copias de a y b, llamadas a_out y b_out, respectivamente, usando np.copy().
    • Usa indexación booleana con el array swap_inds para intercambiar las entradas correspondientes de b en a_out y de a en b_out.
    • Devuelve a_out y b_out.

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
Editar y ejecutar código