Вопрос о границе rvs в scipy.stats.randint

#python-3.x #scipy

#python-3.x #scipy

Вопрос:

Я использую scipy.stats.randint для получения случайных чисел.

Вот мой исходный код и результат.

Ввод:

из scipy.stats импортируйте randint randint.rvs(0.00001, 10, size= 100)

Вывод:

массив([6, 4, 6, 7, 9, 7, 3, 0, 2, 5, 1, 1, 0, 3, 6, 7, 3, 6, 4, 8, 6, 5, 0, 0, 5, 1, 3, 2, 3, 1, 0, 6, 5, 2, 0, 0, 9, 1, 5, 2, 3, 6, 1, 4, 3, 1, 4, 4, 9, 5, 6, 3, 4, 3, 7, 7, 2, 4, 0, 2, 0, 6, 8, 1, 5, 6, 4, 6, 5, 0, 8, 8, 5, 9, 3, 2, 8, 7, 1, 4, 6, 0, 7, 3, 9, 1, 2, 7, 7, 6, 4, 3, 3, 3, 4, 7, 7, 4, 1, 1])

Мой вопрос в том, что я установил минимальное значение на 0.000001, но как «0» вышли из вывода.

Спасибо за вашу помощь.

Ответ №1:

Вызывает mtrand.randint randint Scipy , который является частью пакета Numpy. Как вы можете видеть из его исходного кода, нижняя граница усекается с помощью (int)(low) . Итак, чтобы получить случайные числа из замкнутого интервала [1, 10], выполните следующие действия:

 randint.rvs(1, 11, size=100)
  

Обратите внимание, вам нужно увеличить верхнюю границу на 1, как видно из формы распределения вероятностей (pmf) для randint .