Генерация перестановочных выборок
Как вы выяснили в предыдущем упражнении, для генерации перестановочной выборки нужно случайным образом менять местами соответствующие элементы массивов semi_times и final_times. Напишите функцию с сигнатурой swap_random(a, b), которая возвращает массивы, в которых элементы a и b поменяны местами по случайным индексам.
Это упражнение является частью курса
Примеры применения статистического мышления
Инструкции к упражнению
- Определите функцию с сигнатурой
swap_random(a, b), которая выполняет следующие действия.- Создайте массив
swap_indsтой же длины, что и входные массивы, где каждый элемент равенTrueс вероятностью 50/50. Подсказка: используйтеnp.random.random()с именованным аргументомsize=len(a). Каждый элемент результата, значение которого меньше 0,5, должен бытьTrue. - Создайте копии
aиbс помощьюnp.copy()и назовите ихa_outиb_outсоответственно. - Используйте булево индексирование с массивом
swap_inds, чтобы поменять соответствующие элементы: записать нужные элементыbвa_out, а элементыa— вb_out. - Верните
a_outиb_out.
- Создайте массив
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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