一、python自带random模块
在科学运算中,往往需要用到随机数,随机生成一些正态分布,贝塔分布等,其中常用方法如下所示:
函数 | 介绍 |
---|---|
random() | 生成一个大于等于0小于等于1 的浮点数 |
uniform(a,b) | 在已经指定的[a,b]范围内生成一个随机数, |
triangular(low,high,mode) | 返回三角形分布的随机数,参数分别代表返回值上下限与中值 |
betavariate(alpha,beta) | beta分布的随机数 |
分别对上述函数举个例子:
import random
print(random.random())#随机生成一个大于等于小于的的数
print(random.uniform(1,5))#在此范围内生成一个数
print(random.triangular(0,10,5))#生成三角形分布的值
print(random.betavariate(5,3))#生成beta分布的值
二、numpy.random()方法
通常生成随机数用python自带的random即可,numpy.random()方法常常用来生成随机数组。
方法 | 描述 |
---|---|
np.random.rand(d0,d1,d2…dn) | 生成(0,1]之间,维度为(d0,d1…)的数组 |
np.random.randn(d0,d1,d2…dn) | 具体类似于上者,这里服从正态分布 |
np.random.randint(low,high,[shape]) | 生成维度为[shape],范围为(low,high]的随机矩阵 |
np.random.random_integers(low,high,[shape]) | 生成闭区间[low,high]上离散均匀分布的整数值;若high=None,则取值区间变为[1,low] |
np.random.random_sample([size]) | 返回随机的浮点数,在半开区间 [0.0, 1.0) 形状为[size] |
np.random.choice(a[shape],replace,p | 从一位数组a中抽取元素,生成维度为[shape],replace代表元素是否重复抽取默认False,P:代表每个元素出现概率 |
np.random.shuffle(a) | 洗牌,打乱其原有顺序,改变后重新赋给a |
np.random.permutation(a) | 与上者类似,只不过不改变a值 |
import numpy as np
print(np.random.rand(4,2,2))#生成4行2列[0,1)的矩阵
print(np.random.randn(4,2))#返回一个样本,具有标准正态分布。
print(np.random.randint(2,4,[2,5]))#生成从2-4的整数,2行5列
print(np.random.random_integers(1,5,[2,5]))#
print(np.random.random_sample((5,2)))#生成5行2列的浮点数
print(np.random.choice(5, 3))#This is equivalent to np.random.randint(0,5,3)
a=np.random.randint(1,200,(5,))#必须是1维的[111 23 152 125 129]
print(a)
print(np.random.choice(a,(3,2)))
b=np.random.randint(10,20,(3,3))
print(b)
c=np.random.shuffle(b)
print(c)
print(b)
d=np.random.permutation(b)
print(d)
print(b)