Նախ նշեք, որ numpy.random.random
-ն իրականում numpy.random.random_sample
: Վերջինս կօգտագործեմ հետևյալում. (Տե՛ս այս հարցն ու պատասխանը ավելի շատ անունների համար:)
Երկու գործառույթներն էլ ստեղծում են նմուշներ միատեսակ բաշխումից [0, 1-ում): Միակ տարբերությունն այն է, թե ինչպես են վարվում փաստարկները: numpy.random.rand
-ով, յուրաքանչյուր հարթության երկարությամբ ելքային զանգվածի առանձին արգումենտ է: numpy.random.random_sample
-ի դեպքում ձևի արգումենտը մեկ կրկնակի է:
Օրինակ՝ ձևով (3, 5) նմուշների զանգված ստեղծելու համար կարող եք գրել
sample = np.random.rand(3, 5)
or
sample = np.random.random_sample((3, 5))
(Իրոք, դա այդպես է):
Թարմացնել
1.17 տարբերակի դրությամբ NumPy-ն ունի նոր պատահական API: [0, 1) վրա միասնական բաշխումից նմուշներ ստեղծելու առաջարկվող մեթոդը հետևյալն է.
>>> rng = np.random.default_rng() # Create a default Generator.
>>> rng.random(size=10) # Generate 10 samples.
array([0.00416913, 0.31533329, 0.19057857, 0.48732511, 0.40638395,
0.32165646, 0.02597142, 0.19788567, 0.08142055, 0.15755424])
Նոր Generator
դասը չունի rand()
կամ random_sample()
մեթոդները: Կա կա uniform()
մեթոդ, որը թույլ է տալիս նշել բաշխման ստորին և վերին սահմանները: օր.
>>> rng.uniform(1, 2, size=10)
array([1.75573298, 1.79862591, 1.53700962, 1.29183769, 1.16439681,
1.64413869, 1.7675135 , 1.02121057, 1.37345967, 1.73589452])
numpy.random
անվանատարածքի հին գործառույթները կշարունակեն աշխատել, սակայն դրանք համարվում են սառեցված՝ առանց շարունակական զարգացման: Եթե դուք գրում եք նոր կոդ, և ստիպված չեք լինի աջակցել numpy-ի 1.17-ից առաջ տարբերակներին, խորհուրդ է տրվում օգտագործել նոր պատահական API-ը:
10.11.2017
rand
): Այն մաքրելը կարող է ավելի շատ դժվարություններ առաջացնել, քան արժե, քանի որ, հավանաբար, գոյություն ունի շատ կոդ, որն օգտագործում է գործառույթների տարբեր տարբերակները: 11.11.2017np.zeros((tuple dimensions arg))
ընդդեմnp.random.randn(dim1, dim2, dim3)
ի: 18.07.2019