我想用Numpy的隨機指數分佈創建一個隨機數組的數組。我有這個工作正常,但我有一個額外的要求,我的項目,這是能夠精確指定有多少數組元素有一定的價值。讓我解釋一下(代碼如下,但我會在這裏解釋一下):我生成我的隨機指數分佈並繪製數據的直方圖,產生一個很好的指數曲線。我真正想要做的是使用變量來指定此曲線的y截距(曲線與y軸相交的點)。我可以通過改變直方圖中的bin數來實現這一點,但這隻會改變圖而不會改變原始數據。在Python中操作numpy.random.exponential分佈
我在這裏插入了我的代碼的骨骼。爲了給出一些上下文,我試圖創建一個星系的指數圓盤,因此我想要生成的隨機數組是一個半徑數組,我希望能夠指定的變量是星系中心的數字密度:
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()
此代碼創建以下直方圖:
因此,要總結,我希望能夠指定該地塊通過控制我如何」截取y軸已經生成了數據,而不是通過改變柱狀圖的繪製方式。
任何幫助或要求進一步澄清將非常感激。
這正是我所需要的。非常感謝你。 – user2111574 2013-02-26 15:33:12
如果你不知道normed = true做什麼,請點擊這裏:https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.htm 基本上,它繪製了「在箱上的概率密度函數,歸一化,使得該範圍上的積分是1「 – 2017-05-09 16:52:00