Я нахожу Python (и его экосистему) полными странных условностей и несоответствий, и это еще один пример:
np.random.rand
Создайте массив данной формы и заполните его случайными выборками из равномерного распределения по [0, 1).
np.random.random
Возвращает случайные поплавки в полуоткрытом интервале [0.0, 1.0]. Результаты взяты из "непрерывного равномерного" распределения за указанный интервал.
??? В чем именно разница?