random模块用于生成随机数,下面看看模块中一些常用函数的用法:
from numpy import random
numpy.random.uniform(low=0.0, high=1.0, size=None)
生出size个符合均分布的浮点数,取值范围为[low, high),默认取值范围为[0, 1.0)
> random.uniform() 0.3999807403689315 > random.uniform(size=1) array([0.55950578]) > random.uniform(5, 6) 5.293682668235986 > random.uniform(5, 6, size=(2,3)) array([[5.82416021, 5.68916836, 5.89708586], [5.63843125, 5.22963754, 5.4319899 ]])
numpy.random.rand(d0, d1, ..., dn)
生成一个(d0, d1, ..., dn)维的数组,数组的元素取自[0, 1)上的均分布,若没有参数输入,则生成一个数
> random.rand() 0.4378166124207712 > random.rand(1) array([0.69845956]) > random.rand(3,2) array([[0.15725424, 0.45786148], [0.63133098, 0.81789056], [0.40032941, 0.19108526]]) > random.rand(3,2,1) array([[[0.00404447], [0.3837963 ]], [[0.32518355], [0.82482599]], [[0.79603205], [0.19087375]]])
numpy.random.randint(low, high=None, size=None, dtype='I')
生成size个整数,取值区间为[low, high),若没有输入参数high则取值区间为[0, low)
> random.randint(8) 5 > random.randint(8, size=1) array([1]) > random.randint(8, size=(2,2,3)) array([[[4, 7, 0], [1, 4, 1]], [[2, 2, 5], [7, 6, 4]]]) > random.randint(8, size=(2,2,3), dtype='int64') array([[[5, 5, 6], [2, 7, 2]], [[2, 7, 6], [4, 7, 7]]], dtype=int64)
numpy.random.random_integers(low, high=None, size=None)
生成size个整数,取值区间为[low, high], 若没有输入参数high则取值区间为[1, low],注意这里左右都是闭区间
> random.randint(8) > random.randint(8, size=1) array([1]) > random.randint(8, size=(2,2,3)) array([[[4, 7, 0], [1, 4, 1]], [[2, 2, 5], [7, 6, 4]]]) > random.randint(8, size=(2,2,3), dtype='int64') array([[[5, 5, 6], [2, 7, 2]], [[2, 7, 6], [4, 7, 7]]], dtype=int64)
numpy.random.random(size=None)
产生[0.0, 1.0)之间的浮点数
> random.random(5) array([0.94128141, 0.98725499, 0.48435957, 0.90948135, 0.40570882]) > random.random() 0.49761416226728084
相同用法:
- numpy.random.random_sample
- numpy.random.ranf
- numpy.random.sample (抽取不重复)
numpy.random.bytes(length)
生成随机字节
> random.bytes(1) b'%' > random.bytes(2) b'\xd0\xc3'
numpy.random.choice(a, size=None, replace=True, p=None)
从a(数组)中选取size(维度)大小的随机数,replace=True表示可重复抽取,p是a中每个数出现的概率
若a是整数,则a代表的数组是arange(a)
> random.choice(5) 3 > random.choice([0.2, 0.4]) 0.2 > random.choice([0.2, 0.4], p=[1, 0]) 0.2 > random.choice([0.2, 0.4], p=[0, 1]) 0.4 > random.choice(5, 5) array([1, 2, 4, 2, 4]) > random.choice(5, 5, False) array([2, 0, 1, 4, 3]) > random.choice(100, (2, 3, 5), False) array([[[43, 81, 48, 2, 8], [33, 79, 30, 24, 83], [ 3, 82, 97, 49, 98]], [[32, 12, 15, 0, 96], [19, 61, 6, 42, 60], [ 7, 93, 20, 18, 58]]])
numpy.random.permutation(x)
随机打乱x中的元素。若x是整数,则打乱arange(x),若x是一个数组,则将copy(x)的第一位索引打乱,意思是先复制x,对副本进行打乱处理,打乱只针对数组的第一维
> random.permutation(5) array([1, 2, 3, 0, 4]) > random.permutation(5) array([1, 4, 3, 2, 0]) > random.permutation([[1,2,3],[4,5,6]]) array([[1, 2, 3], [4, 5, 6]]) > random.permutation([[1,2,3],[4,5,6]]) array([[4, 5, 6], [1, 2, 3]])
numpy.random.shuffle(x)
与permutation类似,随机打乱x中的元素。若x是整数,则打乱arange(x). 但是shuffle会对x进行修改
> a = arange(5) > a array([0, 1, 2, 3, 4]) > random.permutation(a) array([1, 4, 3, 2, 0]) > a array([0, 1, 2, 3, 4]) > random.shuffle(a) > a array([4, 1, 3, 2, 0])
numpy.random.seed(seed=None)
设置随机生成算法的初始值
其它符合函数分布的随机数函数
- numpy.random.beta
- numpy.random.binomial
- numpy.random.chisquare
- numpy.random.dirichlet
- numpy.random.exponential
- numpy.random.f
- numpy.random.gamma
- numpy.random.geometric
- numpy.random.gumbel
- numpy.random.hypergeometric
- numpy.random.laplace
- numpy.random.logistic
- numpy.random.lognormal
- numpy.random.logseries
- numpy.random.multinomial
- numpy.random.multivariate_normal
- numpy.random.negative_binomial
- numpy.random.noncentral_chisquare
- numpy.random.noncentral_f
- numpy.random.normal
- numpy.random.pareto
- numpy.random.poisson
- numpy.random.power
- numpy.random.randn
- numpy.random.rayleigh
- numpy.random.standard_cauchy
- numpy.random.standard_exponential
- numpy.random.standard_gamma
- numpy.random.standard_normal
- numpy.random.standard_t
- numpy.random.triangular
- numpy.random.vonmises
- numpy.random.wald
- numpy.random.weibull
- numpy.random.zipf
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。