Gerando amostras por permutação
Como você viu no exercício anterior, precisamos gerar uma amostra por permutação trocando aleatoriamente entradas correspondentes nos arrays semi_times e final_times. Escreva uma função com assinatura swap_random(a, b) que retorne arrays em que índices aleatórios tenham as entradas de a e b trocadas.
Este exercício faz parte do curso
Estudos de caso em pensamento estatístico
Instruções do exercício
- Defina uma função com assinatura
swap_random(a, b)que faça o seguinte.- Crie um array
swap_indsdo mesmo comprimento dos arrays de entrada em que cada elemento sejaTruecom probabilidade de 50/50. Dica: usenp.random.random()com o argumento nomeadosize=len(a). Cada elemento do resultado que for menor que 0.5 deve serTrue. - Faça cópias de
aeb, chamadasa_outeb_out, respectivamente, usandonp.copy(). - Use indexação booleana com o array
swap_indspara trocar as entradas apropriadas debema_oute deaemb_out. - Retorne
a_outeb_out.
- Crie um array
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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