Вы можете использовать numpy.random.uniform , из документации:
low: float или array_like из float, необязательно
Нижняя границавыходной интервал.Все сгенерированные значения будут больше или равны низким.Значение по умолчанию: 0.
high: float или array_like of floats
Верхняя граница выходного интервала.Все сгенерированные значения будут меньше высоких.Значение по умолчанию - 1,0.
Так что и low
, и high
могут получать массивы в качестве параметров, для полноты см. Код ниже:
Код:
import numpy as np
x, y = 5, 5
a = np.random.randn(x, y)
b = np.random.randn(x, y)
high = np.maximum(a, b)
low = np.minimum(a, b)
c = np.random.uniform(low, high, (x, y))
print((low <= c).all() and (c <= high).all())
Выход
True
В приведенном выше примере обратите внимание на использование максимум и минимум для построения high
и low
.Последняя строка проверяет, что действительно все значения c
находятся между high
и low
.Вы можете сделать все это в одну строку, если это вас интересует:
c = np.random.uniform(np.minimum(a, b), np.maximum(a, b), (x, y))