Python——NumPy的random子库

浏览: 1293

Python——NumPy的random子库

NumPy的random子库
np.random.*
np.random.rand()
np.random.randn()
np.random.randint()


import numpy as np

a=np.random.rand(3,4,5)

a
Out[83]:
array([[[ 0.08662874, 0.82948848, 0.68358736, 0.85925231, 0.18250681],
[ 0.62005734, 0.38014728, 0.85111772, 0.07739155, 0.9670788 ],
[ 0.83148769, 0.98684984, 0.17931358, 0.78663687, 0.32991487],
[ 0.41630481, 0.40143165, 0.39719115, 0.35902372, 0.80809515]],

[[ 0.83119559, 0.84908059, 0.03704835, 0.99169556, 0.25103526],
[ 0.54950967, 0.21890653, 0.50118637, 0.61440841, 0.33158322],
[ 0.28599297, 0.6478492 , 0.42480153, 0.64245498, 0.50198969],
[ 0.87671252, 0.4551307 , 0.18533867, 0.38861156, 0.98937246]],

[[ 0.21903302, 0.76057185, 0.51972563, 0.28018995, 0.9267844 ],
[ 0.49750795, 0.86679355, 0.60877593, 0.9502196 , 0.63946047],
[ 0.7766992 , 0.51985393, 0.9756528 , 0.57621679, 0.87955331],
[ 0.6432478 , 0.35046943, 0.91971312, 0.51282177, 0.13310527]]])
sn=np.random.randn(3,4,5)

sn
Out[86]:
array([[[-0.15116386, 0.85164049, 2.04232044, 0.5412239 , -0.65171862],
[-0.23334418, -0.44215246, -1.19597071, -1.2189118 , 0.02157593],
[ 0.91657483, 0.2611884 , 1.11715427, -1.02409543, -1.38927614],
[-0.19741865, -0.15042967, 1.174679 , 1.27795408, -0.31847884]],

[[ 1.4637826 , 1.43320029, -0.60038343, 1.39244389, -0.75747975],
[ 0.52065785, -0.64790451, -0.32049525, 1.17868116, -0.05638849],
[ 0.22874314, 0.68671056, -1.69309123, -0.54882906, -0.23721541],
[-0.31578954, -0.44044017, -1.31905554, 2.13304617, -0.63259492]],

[[ 0.23859545, 0.40294529, -0.2073546 , -0.90358886, -0.07341441],
[-0.65382437, -0.21540712, -0.18190539, -1.32444175, -0.49808978],
[ 0.68718048, 1.23431895, 0.01745539, 0.74168673, 2.06773505],
[-2.61703882, 0.02591586, -0.45429583, -0.09624749, -0.44027003]]])

b=np.random.randint(100,200,(3,4))

b
Out[88]:
array([[133, 149, 151, 197],
[160, 187, 108, 140],
[139, 103, 168, 123]])

b=np.random.randint(100,200,(3,4))

b
Out[90]:
array([[166, 144, 136, 107],
[106, 194, 175, 127],
[115, 107, 132, 178]])


np.random.seed(10)

np.random.randint(100,200,(3,4))
Out[92]:
array([[109, 115, 164, 128],
[189, 193, 129, 108],
[173, 100, 140, 136]])

np.random.seed(10)

np.random.randint(100,200,(3,4))
Out[94]:
array([[109, 115, 164, 128],
[189, 193, 129, 108],
[173, 100, 140, 136]])


np.random.seed(5)

np.random.randint(100,200,(3,4))
Out[97]:
array([[199, 178, 161, 116],
[173, 108, 162, 127],
[130, 180, 107, 176]])

np.random.seed(5)

np.random.randint(100,200,(3,4))
Out[99]:
array([[199, 178, 161, 116],
[173, 108, 162, 127],
[130, 180, 107, 176]])

给定随机数组种子之后,产生的随机数组不变。


shuffle函数

import numpy as np

a=np.random.randint(100,200,(3,4))

a
Out[102]:
array([[115, 153, 180, 127],
[144, 177, 175, 165],
[147, 130, 184, 186]])

np.random.shuffle(a)

a
Out[104]:
array([[147, 130, 184, 186],
[115, 153, 180, 127],
[144, 177, 175, 165]])

np.random.shuffle(a)

a
Out[106]:
array([[147, 130, 184, 186],
[115, 153, 180, 127],
[144, 177, 175, 165]])

np.random.shuffle(a)

a
Out[108]:
array([[144, 177, 175, 165],
[147, 130, 184, 186],
[115, 153, 180, 127]])



shuffle函数随意调换两轴

permutation函数

a=np.random.randint(100,200,(3,4))

a
Out[110]:
array([[141, 162, 101, 182],
[116, 178, 105, 158],
[100, 180, 104, 136]])

np.random.permutation(a)
Out[111]:
array([[141, 162, 101, 182],
[100, 180, 104, 136],
[116, 178, 105, 158]])

a
Out[112]:
array([[141, 162, 101, 182],
[116, 178, 105, 158],
[100, 180, 104, 136]])

permutation 函数作用之后并不改变数组a

choice 函数,抽取

import numpy as np

b=np.random.randint(100,200,(8,))

b
Out[115]: array([127, 131, 102, 168, 138, 183, 119, 118])

np.random.choice(b,(3,2))
Out[116]:
array([[131, 183],
[118, 138],
[138, 183]])

np.random.choice(b,(3,2),replace=False)
#replace表示是否可以重复抽取,默认为False
Out[117]:
array([[102, 131],
[127, 138],
[183, 168]])

np.random.choice(b,(3,2),p=b/np.sum(b))
#p是随机概率,出现几率与数字大小成正比。
Out[118]:
array([[118, 127],
[183, 183],
[131, 183]])



import numpy as np

q=np.random.uniform(0,10,(3,4))

q
Out[122]:
array([[ 5.75413707, 5.79721399, 0.64506899, 1.7724613 ],
[ 3.41527086, 6.08702583, 1.95474956, 1.21548467],
[ 9.34679509, 3.10979918, 4.74316569, 0.62211558]])

n=np.random.normal(10,5,(3,4))

n
Out[124]:
array([[ 5.46196987, 6.27937203, 9.22652647, 12.7923338 ],
[ 2.38821804, 5.53678405, 13.12062969, 5.9740824 ],
[ 11.06140028, 12.46176925, 18.3372659 , 0.47620034]])
推荐 0
本文由 霍开拓 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册