Как сгенерировать случайные числа, близкие к 1, с помощью Numpy

Я хочу сгенерировать большой массив случайных чисел, близких к 1. Есть ли быстрый способ сделать это, позволяющий установить желаемое соседство от 1, скажем, 1e-5?

случайным образом согласно какому распределению?

fferri 20.04.2018 22:26

Что бы ни? Но среднее значение должно быть 1.

Vladimir 20.04.2018 22:27
np.random.uniform(low=1-1e-5,high=1+1e-5,size=10)
Brenlla 20.04.2018 22:27
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
60
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Проверьте модуль numpy.random:

Например, нормально распределенные числа со средним значением 1,0 и стандартным отклонением 0,002:

>>> numpy.random.normal(1, 0.002, (5,))
array([1.00246167, 0.99722898, 0.99793482, 1.00100399, 1.00004228])

Использование равномерного распределения:

>>> numpy.random.uniform(1-1e-5, 1+1e-5, (5,))
array([1.00000668, 1.00000037, 0.99999398, 0.99999736, 1.00000645])

Используйте равномерное распределение:

>>> window = 1e-5
>>> np.random.uniform(low=1-window, high=1+window, size=10)
array([ 1.00000539,  0.99999055,  1.00000759,  0.99999228,  1.00000737,
        1.00000557,  1.00000522,  1.00000375,  1.00000054,  0.99999047])

Если вы хотите, например, 1000 однородных случайных чисел в диапазоне [1 - 1e-5, 1 + 1e-5):

nums = np.random.uniform(low=1-1e-5, high=1+1e-5, size=1000)

Другие вопросы по теме