В моем понимании, если вам нужно только одно псевдослучайное число в интервале [0,1[, вы можете использовать любой из numpy.random.rand()
и numpy.random.random()
. Если вам нужно больше чисел в той или иной форме, скажем, матрицы 2×3, у вас есть четыре способа сделать это:
import numpy
x,y=2,3
s=(x,y)
numpy.random.random(s) # 1
numpy.random.rand(*s) # 2
numpy.random.random((x,y)) # 3
numpy.random.rand(x,y) # 4
В документации сказано, что rand(…) обертывает random_sample(…)
и что rand(…) псевдонимы random_sample(…)
. Так зачем же две функции делают одно и то же (вплоть до синтаксического преобразования, если из вызова нужно получить более одного числа)? Поскольку пользователям не рекомендуется использовать random_sample(…)
, сохраняется ли такое же разочарование для rand(…)
и random(…)
? Почему или почему нет?
Заголовки numpy.random.rand(…) и numpy.random.random(…) говорят: «> … > Устаревшая генерация случайных чисел >». Документация должна была действительно прояснить статус наследия в виде обычного текста в основных вопросах двух веб-страниц.
Поскольку обе функции являются устаревшими, они устарели. Вместо этого используйте что-нибудь другое. Текущий выбор — numpy.random.Generator.random из Генератор случайных чисел.
Спасибо за то, что сообщили мне об этом, перейдите по адресу http://stackoverflow.com/users/9769953.