我正在嘗試生成一些數據,例如:年齡與一週內堆棧溢出花費的小時數。我嘗試使用randn
函數,但它不能控制生成的值的範圍和值的量化。我嘗試了一些算法,例如盒子加工方法,但同樣的問題也出現在那裏。可以生成兩個均勻變量,但對正態分佈值的控制是什麼?有人可以解釋我,我怎麼可以在Python中執行此操作?Python生成正態分佈的僞數據
回答
我認爲這是你在找什麼:
def get_truncated_normal(mean=0, sd=1, low=0, upp=10):
return truncnorm(
(low - mean)/sd, (upp - mean)/sd, loc=mean, scale=sd)
X = get_truncated_normal(mean=15, sd=2, low=0, upp=1000)
a=(X.rvs(100))
Numpy的random.normal將做的伎倆。您需要提供中位數,標準差和所需的大小。
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
M = 25
SD = 5
n = 100
age = np.random.normal(M, SD, n)
sorted_age = sorted(age)
pdf = stats.norm.pdf(sorted_age, M, SD)
plt.plot(sorted_age, pdf)
plt.show()
這不是我的問題的答案 – user8778850
我想要的是pdf處於一定的範圍內,併爲我提供了量化值。年齡只有12到50之間的自然數。我需要年齡的實際值 – user8778850
我假定這兩個變量是獨立的。這是一種做正義年齡的方法。
>>> import numpy as np
生成大小50位置的隨機的,單變量正常樣品和規模30.
>>> ages = np.random.normal(30,30,50)
丟棄值小於零。如果你需要一些固定的樣本量,那麼你必須做一些更聰明的事情。
>>> ages = [age for age in ages if age>=0]
獲得最大的年齡值,知道最大的bin邊界必須是什麼。
>>> max(ages)
90.513300401178611
創建箱到指定歲,0〜1,1〜2等
>>> bins = np.arange(0,92,1)
確認最後一個塊的邊界是大到足以容納最大年齡。
>>> max(bins)
91
將年齡分配給垃圾箱。
>>> sample = np.digitize(ages, bins)
顯示結果。
>>> sample
array([20, 82, 73, 21, 7, 39, 56, 23, 37, 15, 9, 21, 46, 6, 51, 13, 89,
47, 46, 4, 78, 33, 29, 26, 74, 72, 62, 52, 2, 48, 39, 91, 40, 38,
40, 12, 59, 77, 52, 65, 35, 69, 31, 74, 18], dtype=int64)
爲什麼這個問題是低估的。你給了我最完美的答案 – user8778850
可能是因爲你沒有顯示你編寫的代碼試圖爲你自己解決問題。我只是在猜測。我厭惡選票,因爲很難知道選民抗議的是什麼。事實上,如果你看我的檔案,你會發現我只有一次倒票。 –
- 1. 在FORTRAN中截斷正態分佈的僞隨機數生成
- 2. 基於python中的一個值生成「正態分佈」數據
- 3. 從Python中的正態分佈生成數
- 4. 用正態分佈噪聲和平均函數生成數據
- 5. 在範圍0和1內生成正態分佈數據
- 6. 如何從正態分佈生成數據
- 7. 以正態分佈生成N個點
- 8. 適合對數正態分佈到已分箱的數據python
- 9. 從Java中的數組生成對數正態分佈
- 10. 生成均勻分佈的僞隨機數在C++
- 11. 使用觀測數據的形狀生成隨機對數正態分佈
- 12. numpy,如何生成一個正態分佈的整數集合
- 13. Ruby中生成高斯(正態分佈)隨機數的代碼
- 14. 生成一個範圍內的正態分佈稱量常數
- 15. 生成Java中遵循正態分佈的數字
- 16. 正態分佈;鐵python
- 17. python pylab plot正態分佈
- 18. Python - 計算正態分佈
- 19. 使用Fortran在一個範圍內生成正態分佈的數據
- 20. 如何在Prolog中生成正態分佈隨機數?
- 21. 如何在SQL Server中使用正態分佈生成數字
- 22. 對數正態分佈PDF生成蟒蛇零
- 23. Java - 實現產生正態分佈的數字的隨機向量生成器
- 24. 從已知百分位生成正態分佈
- 25. 擬合正態分佈至1D數據
- 26. 如何生成正態分佈的多維點
- 27. 在java中生成具有正態分佈的向量
- 28. 生成具有正態分佈屬性的人物對象?
- 29. 在C中生成正態分佈隨機值的算法?
- 30. Python中分佈的正態性測試
你所說的「價值量化」是什麼意思? – user8153
我不希望年齡爲12.3歲,它應該只是整數,其中小時可以是0.5小時的倍數@ user8153 – user8778850
請問[this](https://stackoverflow.com/questions/36894191/)幫幫我? –