Python で
一様分布とは
統計学入門 - 東京大学出版会 の
さいころを
振った 時に 出る 目Xの 確率分布が 一様分布の 例 \(f(x)=1/N, x = 1,2,…, N (N は
正整数)\)
を、\(1,2,…,N\)上の 離散一様分布 uniform distribution of discrete type と いう。
一様分布には、
さいころの
使用する ライブラリに ついて
基本的に、
* random.uniform * numpy.random.uniform * scipy.stats.uniform
random.uniform を 使う
random.uniform
を
import random a = random.uniform(1, 6) print(a)
2.073915855291017
さいころの
x = [] for i in range(1000): x.append(random.uniform(1, 6)) import matplotlib %matplotlib inline matplotlib.pyplot.hist(x, bins=6)
(array([ 171., 145., 189., 164., 155., 176.]), array([ 1.01715776, 1.84730943, 2.6774611 , 3.50761277, 4.33776444, 5.16791611, 5.99806778]), <a list of 6 Patch objects>)
だいたい、
numpy.random.uniform を 使う
下限 low
、上限 high
、要素数 size
の
import numpy as np s = np.random.uniform(1,6,1000) print(s)
[ 5.66314323 4.24489532 4.25479131 4.67518273 3.23827495 1.20649119 2.90638637 3.85171153 5.90247421 5.91913148 4.36391495 4.77994949 3.28645749 5.1156919 1.61482493 2.06972991 4.87172926 1.37647802 5.57305749 3.0910897 2.56891181 2.4679285 3.74893254 1.43666388 3.27756165 2.86923295 5.65490362 4.87629593 3.51306495 4.27637317 4.20714485 5.13605215 4.86762244 5.83230728 2.65764513 2.93308121 4.9501155 5.22641091 4.47706337 2.57133777 1.21121026 4.95746902 2.80730349 2.45832209 1.58385926 2.30719041 1.37861874 2.53203029 1.596917 5.30860959 4.3155518 2.29168103 5.78725053 2.48993979 5.99268202 1.65994826 2.03366997 4.70661814 4.13072759 1.8139958 2.02398836 2.80330056 2.38506211 3.29748896 2.99876439 5.33003442 3.30617187 5.50879808 1.92516985 1.8619623 1.95220705 5.89865961 2.36102088 3.7856038 1.3563284 2.35734946 1.83530203 5.11899572 1.93791587 1.2881385 4.62798156 2.48483749 3.2646317 2.22951083 1.56004729 2.21991011 1.36590055 4.44757149 4.74792205 2.96552328 4.15325941 4.75936044 5.09805294 2.97005915 4.12279753 3.05514655 1.0727981 5.15865529 5.71808231 2.25604534 1.88280227 4.30727389 1.58076087 3.65597896 3.48245016 5.41260436 4.11282067 2.51173837 4.84342387 3.33135571 3.51676632 1.41211791 3.95935942 4.82836874 5.74614835 3.91508551 3.73844019 4.28904113 3.25905025 5.76836508 4.29300209 3.6577281 2.0960961 1.97682339 4.09733727 1.7870182 3.06139641 2.20056788 5.37711681 1.02424963 1.3203103 2.59895689 1.72451711 5.00822225 5.59120976 3.55134442 1.11528255 2.1562806 2.82047465 3.70139691 4.19661961 1.4365443 1.53828388 1.98078507 3.40961686 3.65601316 1.01649781 5.25078441 3.20289822 2.88066335 1.20319301 4.91810095 5.41797743 1.53503761 1.83534767 2.25150953 2.24488649 2.55708702 1.95509582 4.90295917 2.07355042 4.91289126 1.73659647 4.32991717 1.01311263 2.77614579 5.30408615 5.96899214 5.74984395 4.09436141 2.19500411 3.57770533 5.49386397 2.55887468 5.23837299 5.45247015 1.8120512 5.00924146 5.36065431 2.0472757 5.45627388 4.91594116 4.10726927 2.91073009 2.29407745 2.61072639 3.07984413 1.44279362 4.39839339 4.25892466 1.96534861 5.345804 2.72511069 4.70516206 3.84578639 1.87908357 5.82089122 4.97314743 4.84359815 2.39399651 1.22786595 5.21686947 2.95441137 4.66715191 3.95768627 4.05574048 2.74157238 3.68929438 5.35271592 1.81981425 5.2301143 4.81650904 1.14266922 4.3464694 1.53448837 4.62753168 2.51401773 3.33581252 3.47040366 3.24750998 2.06206575 2.26926619 4.64831796 3.31884173 2.93068201 3.02225441 4.21413245 5.31136594 1.48421035 5.4161729 3.33340393 3.32857837 2.44567905 3.42617048 5.11685686 1.00002445 1.1338625 1.00084931 3.72394049 1.59173517 4.58001394 3.96170856 3.66239524 1.01473059 3.87780626 2.00290987 2.58343135 1.68784117 3.62181768 4.10926898 4.21358931 2.1100053 2.76041676 5.81753715 5.06562264 2.55325758 2.63460731 1.25842647 5.68727056 5.81891718 1.76495407 1.48488111 5.22038744 5.29408664 4.34502965 4.78270864 5.11632833 4.47150065 4.86365928 5.98301965 2.22469686 5.45986766 3.29780327 2.19645574 2.10410039 4.41723568 2.68072244 3.44923531 2.39659193 5.77717987 5.32512329 5.0331973 1.89205476 4.11747315 3.4369065 4.92997002 1.48678746 4.64628988 5.97769366 5.3779644 3.70534736 1.07447331 3.21167532 5.1513734 5.50152222 5.52698773 2.13967436 1.64998223 3.34948615 3.98797528 4.10059004 2.71385332 5.8373421 5.47223921 3.88691776 4.43883242 3.94723949 3.97203335 4.51153 2.33488186 5.80757564 3.50134311 4.62492877 2.379709 4.16797238 4.18424889 5.23512231 1.84257495 5.00944908 3.15531702 3.28505943 1.18118644 2.78444912 1.35360746 1.08814889 3.19441426 4.62713485 4.75467107 3.25075901 5.81412771 4.66269151 1.29940434 5.32050449 4.70547679 4.75650817 3.35703646 5.01447686 1.91004714 2.65407628 3.81732016 3.21753885 2.29281565 4.98305671 3.64507961 5.43832538 1.26038394 2.860566 5.61192014 2.76439084 5.50535124 4.53281458 1.43606875 2.3898353 4.84061005 3.86844107 1.8217425 3.13778325 4.85290445 3.40809562 4.02062845 3.01471895 2.19242217 5.72737451 4.00211705 3.40569298 2.91560015 2.42265827 2.73240401 2.59510342 2.08331538 3.03838311 2.1861959 2.62336772 2.38923714 4.24273334 5.64554355 3.30969045 3.04712549 5.72186924 5.77501618 3.31338891 1.76330055 4.84946719 2.33751364 2.31961523 5.81255425 1.24359969 3.64835924 3.78453095 4.14567588 3.67778143 3.02257983 5.64273297 4.31194541 2.24277815 5.27481695 4.56533656 1.65780156 3.5997441 4.03835116 5.28255367 1.68842351 1.78860005 5.90935488 3.25143121 4.41157452 1.66628864 5.18953454 5.89523608 1.85442619 5.99944918 5.1451415 2.27863556 5.75423881 3.5783187 1.86471032 4.02838863 4.22520408 5.5433202 2.92085891 3.74201609 1.43449414 1.59037708 1.82921402 2.33082041 3.05185764 1.48258307 2.45760353 3.69844546 4.10747741 4.53375976 4.75937577 5.11780036 3.34012288 5.08035134 2.85230397 2.28749751 3.44031229 1.40798238 1.05979892 3.21535161 3.20792646 1.54873593 1.82502156 4.00456068 5.89448687 1.33819513 4.06078167 1.9372134 2.20676271 3.60414479 3.55984952 4.76020818 5.5581863 3.18629077 3.25870003 4.82189653 3.72247519 1.6110926 2.28493634 1.05636705 5.21450039 3.14548878 2.91042594 3.8513145 3.69297925 1.0586049 2.06950164 4.6721573 5.00290785 4.58131996 1.50255207 3.63738665 2.52435814 3.45809521 4.13107833 1.47924786 2.93035959 1.45711659 3.11658863 3.71587259 4.84232314 4.23532576 1.87991292 5.86555295 1.79949227 4.26695584 3.66543773 5.25859726 1.71400761 5.17585639 1.11208655 4.84104425 3.85174001 5.72351563 5.52273547 4.57295622 3.82123849 2.35691819 1.0019965 4.01150587 5.02293658 1.44471813 5.77011399 1.60425617 3.1069816 5.02264242 2.53148702 2.22340093 2.33197345 2.04519988 3.54913856 4.84236749 2.74424633 5.8433628 1.2813768 3.52258614 5.58984868 1.74464914 4.51406118 4.24415284 4.5459739 3.87259257 5.58733441 3.55304447 2.41004856 3.80083021 3.47100937 2.92103675 5.00893902 3.09759541 3.55084035 2.80594826 5.67826212 5.73019286 3.33898089 5.6241248 4.69705838 1.91803999 3.57770266 3.63239061 5.37544096 4.93087289 3.6754247 1.10135643 1.4166993 3.67458444 1.318632 5.83606013 2.63095645 2.7810249 1.32142164 1.3145962 2.48452648 1.24590337 1.59202021 5.7747101 1.59130227 4.27839511 2.39746544 3.49046596 1.17617977 3.56070645 1.72774238 3.89068617 5.95904758 4.0923199 3.97062536 2.60861137 1.39009805 5.56436432 5.89796864 4.80675811 3.11052975 2.66742836 2.41391215 5.54712204 3.21968403 2.24629541 3.12009821 3.52631289 2.91261235 1.84752295 1.97168055 3.49375226 1.26502815 3.06052973 2.31665103 4.11869572 2.37301371 2.45454292 1.58585778 3.89287025 4.57973404 5.86798253 2.02624406 3.35299473 2.68558018 5.5725805 1.45408723 1.51040105 2.24360867 2.64625107 2.51067932 1.24506064 4.49713407 5.58199381 4.54565966 3.87488334 2.98575709 1.83304202 3.61944225 4.14935503 4.41523358 5.57597924 4.96594486 4.56249529 2.44636453 1.57725115 3.99881444 4.04340836 4.61994551 2.43700799 1.78090737 1.87465065 2.56228248 5.01611976 2.41071848 3.49077832 5.21439786 5.93074655 1.17698554 4.5981338 4.31704421 5.96337575 1.42252826 4.09035068 2.86687639 3.46486848 2.319884 4.96417009 4.94818649 1.84868987 1.70766497 1.79764092 5.71294665 1.55191669 3.61335006 1.6688361 3.15853219 1.59073514 1.47256617 2.75964746 4.36519603 3.90664263 1.7781111 4.1128021 3.29334299 3.8453606 1.10722124 4.53166869 5.74289421 5.45099278 1.8392859 4.05365136 3.31713861 1.34453717 2.37721385 3.8203113 5.03506878 3.04277605 5.63787367 2.06491627 3.21932741 2.24448062 2.45311119 3.45971474 4.63934036 2.88815016 2.75592935 5.24693105 2.39844029 1.58839567 2.64524343 3.91412504 4.64321239 4.52049872 1.35574451 2.14872522 4.18261404 1.38106253 2.87147181 2.89299755 2.5504278 1.44321376 4.91710154 5.1748531 5.97179583 2.81318729 1.40920118 1.71971274 5.89584431 1.89762969 3.61530213 4.70938863 4.70465028 2.30987582 5.59536378 1.49727038 5.49813792 5.58454991 3.47186829 1.68183474 3.73772423 1.14737784 4.61825732 4.71591489 2.56337634 3.40702796 3.36296802 3.95713764 4.65193372 3.6744376 4.62099764 3.22665327 1.62373527 5.80160443 5.33384555 1.88645007 5.20456926 3.80141811 1.88067735 4.30304803 3.0247668 5.83551488 2.74172461 4.67710507 2.34487172 5.84004122 4.68232338 4.910449 3.18705904 2.08716649 1.1611888 3.67849771 1.60134135 1.69320599 4.14850715 1.27455152 3.90801531 5.76803138 5.89245909 5.33726146 3.04379411 3.9270988 5.45374029 4.62159742 3.94287214 1.52019829 5.69284284 3.54999855 4.67422153 4.88264712 1.41853589 1.57703145 2.32699049 3.33749936 5.60994739 4.80452334 1.75350137 1.48515979 5.56670469 5.77124504 3.34758006 4.20972043 2.98818786 3.6109789 1.68101437 4.82218883 5.24008807 5.28082068 1.33095817 4.03735189 1.42041222 2.20414765 5.39257946 5.31719641 1.87693392 5.63453721 3.95779077 3.94646669 1.61809152 3.33770623 2.98967513 3.25597251 2.46161009 1.46135421 5.23019758 2.18322483 1.79118287 2.46541749 4.78323152 3.66050291 3.57520729 2.44211427 1.23245359 2.56225845 5.65833786 2.77928312 3.28810098 4.63490075 2.88487005 3.10325663 4.28229613 5.30794877 5.09065826 3.43518992 3.27372701 5.78191763 5.85248077 5.52191919 5.28672025 4.56701151 5.44180564 2.98333716 4.35470901 3.14979693 5.28504568 4.01783082 5.12910779 3.92089422 5.32909624 1.13355747 1.72807971 2.13690501 3.0681371 2.11666575 1.96385739 4.59527295 1.21320012 1.44082527 2.07450103 4.58436793 3.81108586 2.80284141 3.48430033 5.44642483 2.81217899 3.22297305 3.79104866 3.53853192 1.67539527 2.71902547 2.37307436 1.34636436 2.69180455 5.68034445 1.97773791 1.38256154 4.96437148 3.16303809 5.96074567 2.54196531 5.22873788 2.65395453 4.63279673 2.72181565 1.35413687 2.01816271 2.90503671 4.40309464 4.0586675 3.67261185 1.84368135 5.83149644 4.8885055 3.53671264 5.93318369 5.17530596 4.93027548 1.80363346 4.05891107 1.89818363 2.06977187 2.30226821 4.15204174 1.75907264 2.33623509 2.78054852 3.82548442 2.02957145 2.11709874 4.83192585 4.07934737 1.26151164 2.10855015 2.01520983 5.2291843 3.60979518 2.11770546 2.95964883 5.70089234 4.56805913 1.26911838 2.59435731 5.89779923 3.19881224 3.41536703 5.54352684 4.2532888 3.44845498 2.92200289 5.90466946 2.47311602 1.25167654 2.37593779 4.74803637 3.57521505 5.87097792 4.55117214 5.70820461 3.91278036 3.1784911 4.46459614 5.39105243 1.08751302 1.58966354 1.58156654 2.82860914 3.48423615 5.00538343 5.77112908 4.82247557 5.86483228 5.06675108 1.54990086 1.22403947 1.07565912 2.64155632 4.08986119 3.40188237 4.40470982 3.14046596 3.94706631 5.23728119 5.63358661 5.98738928 1.6431731 1.50658404 5.21177277 3.48543077 5.29456771 2.14012027 1.05388799 3.13925773 4.91457568 2.08818632 3.04218007 3.60144225 4.8309165 1.78636457 1.23204338 4.88061658 3.34608076 4.45900648 2.6091534 3.98618698 3.67210812 5.90451772 3.36513467 2.39720468 3.96782346 3.40631427 2.54240788 1.10643565 4.87858155 3.64190818 3.13689707 1.32948812 2.88699104 3.09238817 2.67727771 5.37476488 5.01575504 3.53605713 1.81668487 5.05212458 3.60985923 4.37515115 2.33348853 4.97133565 5.66595875 1.9816279 2.02764546 3.3719821 3.33653345 5.72610191 4.35759524 4.71908071 5.84953522]
棒の数6で
import numpy as np s = np.random.uniform(1,6,1000) import matplotlib %matplotlib inline matplotlib.pyplot.hist(x, bins=6)
(array([ 171., 145., 189., 164., 155., 176.]), array([ 1.01715776, 1.84730943, 2.6774611 , 3.50761277, 4.33776444, 5.16791611, 5.99806778]), <a list of 6 Patch objects>)
random.uniform
と
scipy.stats.uniform を 使う
random.uniform
、numpy.random.uniform
はscipy.stats.uniform
は、
scipy.stats.uniform — SciPy v1.1.0 Reference Guide の
from scipy.stats import uniform import matplotlib.pyplot as plt fig, ax = plt.subplots(1, 1) # uniform.ppf(0.01, loc=1.0, scale=6.0)を下限、uniform.ppf(0.99, loc=1.0, scale=6.0)を上限とする # 線形に等間隔な数列を生成する。 x = np.linspace(uniform.ppf(0.01, loc=1.0, scale=6.0), uniform.ppf(0.99, loc=1.0, scale=6.0), 100) # 確率密度を出力 print(uniform.pdf(x,loc=1, scale=6)) # 一様分布確率密度関数をplot ax.plot(x, uniform.pdf(x,loc=1, scale=6),'r-', lw=5, alpha=0.6, label='uniform pdf') # rv_continuousクラスのインスタンスを取得 # 固定型統計分布: frozen RV 参考:https://future-chem.com/scipy-stats-dist/ rv = uniform(loc=1.0, scale=6.0) # numpy.random.uniform のような配列を生成する r = uniform.rvs(loc=1.0, scale=6.0, size=1000) # 固定型統計分布: frozen RV に従う、確率密度関数をplot ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') # ヒストグラム描画 ax.hist(r, density=True, histtype='stepfilled', alpha=0.2) # 凡例表示 ax.legend(loc='best', frameon=False) # グラフ表示 plt.show()
[ 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667]
グラフ が6
を
一応さいころの
参考
- 線形に
等間隔な 数列を 生成する numpy.linspace関数の 使い 方 - DeepAge - random — 擬似乱数を
生成する — Python 3.7.1 ドキュメント - 一様乱数の
生成 - 人工知能に 関する 断創録 - Numpy Uniform | plotly
- numpy.random.uniform — NumPy v1.15 Manual
- scipy.stats.uniform — SciPy v1.1.0 Reference Guide
- Scipyの
統計モジュールstatsで 統計分布を 使いこなす
以上です。
コメント