#python #arrays
Вопрос:
У меня есть что-то вроде ниже:
random_array = np.random.random(10)
scaled_array = random_array/np.sum(random_array)
Это дает мне хороший массив со случайными поплавками, сумма которых равна 1. Тем не менее, я пытаюсь сделать этот шаг дальше и сделать следующее:
Например, зафиксируйте 2-й и 5-й элементы равными 0,04 и 0,09 соответственно, а все остальные элементы генерируйте случайным образом. Но сумма всего массива все равно должна быть ровно 1.
Сделав еще один шаг, я хочу указать верхнюю (нижнюю) границу для всех/каждого элемента(ов). Например, я все еще хочу, чтобы 4-й элемент был равен 0,09, но ТАКЖЕ хочу, чтобы ВСЕ элементы были МЕНЬШЕ 0,1. (Они все равно будут складываться до 1, потому что у меня более 10 элементов.)
Или даже иногда я хочу указать ТОЛЬКО верхнюю/нижнюю границу БЕЗ какой-либо фиксированной константы для всех элементов массива.
Как я могу этого достичь?
Комментарии:
1. Первый «шаг» прост, так как у вас просто есть новая сумма для ваших случайных элементов (то, что осталось после фиксированных битов).