ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Defina uma função com assinatura swap_random(a, b) que faça o seguinte.
    • Crie um array swap_inds do mesmo comprimento dos arrays de entrada em que cada elemento seja True com probabilidade de 50/50. Dica: use np.random.random() com o argumento nomeado size=len(a). Cada elemento do resultado que for menor que 0.5 deve ser True.
    • Faça cópias de a e b, chamadas a_out e b_out, respectivamente, usando np.copy().
    • Use indexação booleana com o array swap_inds para trocar as entradas apropriadas de b em a_out e de a em b_out.
    • Retorne a_out e b_out.

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
Editar e executar o código