Генерування перестановочних вибірок
Як ви з'ясували в попередній вправі, нам потрібно згенерувати перестановочну вибірку, випадково міняючи місцями відповідні елементи в масивах 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з назвамиa_outіb_outвідповідно, використовуючиnp.copy(). - Використайте булеву індексацію з масивом
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