Вы можете сделать это:
x = np.random.rand(3,3)
x /= np.sum(x, axis=0)
Основанием для этого является то, что вы делите каждый столбец на сумму всех значений. Это гарантирует, что все столбцы будут добавлены к 1.
Или вы можете сделать:
x = np.random.rand(3,3)/3
Потому что каждое число будет между [0,1]. Если вы добавите домен к [0,1 / 3], то гарантируется, что сумма будет <1. </p>
Как правило, неясно, что вы имеете в виду, когда хотите ограничить числа, но при этом хотите, чтобы они были случайными.