Я пытаюсь создать массив случайных чисел, используя случайное экспоненциальное распределение Numpy. У меня это нормально работает, однако у меня есть одно дополнительное требование для моего проекта, и это возможность точно указать, сколько элементов массива имеет определенное значение.Манипулирование распределением numpy.random.exponential в Python
Позвольте мне объяснить (код ниже, но я буду объяснять это здесь): Я генерирую свое случайное экспоненциальное распределение и строю гистограмму данных, создавая хорошую экспоненциальную кривую. То, что я действительно хочу сделать, это использовать переменную, чтобы указать y-перехват этой кривой (точка, где кривая соответствует оси y). Я могу добиться этого в основном путем изменения количества ящиков в моей гистограмме, но это только изменяет график, а не исходные данные.
Здесь я вставил кости своего кода. Чтобы дать некоторый контекст, я пытаюсь создать экспоненциальный диск из галактики, поэтому случайный массив, который я хочу сгенерировать, представляет собой массив радиусов, а переменная, которую я хочу указать, - это плотность числа в центре галактики :
import numpy as N
import matplotlib.pyplot as P
n = 1000
scale_radius = 2
central_surface_density = 100 #I would like this to be the controlling variable, even if it's specification had knock on effects on n.
radius_array = N.random.exponential(scale_radius,(n,1))
P.figure()
nbins = 100
number_density, radii = N.histogram(radius_array, bins=nbins,normed=False)
P.plot(radii[0:-1], number_density)
P.xlabel('$R$')
P.ylabel(r'$\Sigma$')
P.ylim(0, central_surface_density)
P.legend()
P.show()
Этот код создает следующую гистограмму:
Таким образом, чтобы подвести итоги, я хотел бы быть в состоянии определить, где этот участок перехватывает у оси, контролируя, как я ve сгенерировал данные, а не изменяя, как была построена гистограмма.
Любая помощь или просьба о дальнейшем уточнении была бы очень оценена.
Именно это мне и нужно. Большое спасибо. – user2111574
Если вы не знаете, что делает normed = true do, проверьте здесь: https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.htm В принципе, он отображает «значение функция плотности вероятности в бункере, нормированная так, что интеграл по диапазону равен 1 " –