python 随机函数总结

1.random

使用时需要import random。

  1. random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0
  2. random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。
  3. random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限。
  4. random.randrange([start], stop[, step]),从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。random.randrange(10, 100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。
  5. random.choice(sequence)。参数sequence表示一个有序类型。这里要说明一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。
  6. random.shuffle(x[, random]),用于将一个列表中的元素打乱。
  7. random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。不会重复选取。

2.numpy.random

numpy的数组不能用上面的随机函数,numpy也有自己的随机函数:

1.numpy.random.rand(d0,d1,…,dn)  rand函数根据给定维度生成[0,1)之间的数据,dn表示每个维度,返回值为指定维度的array

2.numpy.random.randn(d0,d1,…,dn) 返回一个具有标准正态分布的数组。

3.np.random.randint(low,hihg,size) 生成一个[low,high)的数组,数组形状为size。

4.np.random.random_integers(low,hihg,size) 生成一个[low,high]的数组,数组形状为size。不过不赞成使用次用法,建议使用np.random.randint(low,hihg,size+1)

5.numpy.random.random((d0,d1,…,dn)) 函数根据给定维度生成[0,1)之间的数据,dn表示每个维度,返回值为指定维度的array,random函数的功能和前面的rand一模一样,不过多了个括号。。。

6.random_sample((d0,d1,…,dn)) 用法与numpy.random.random((d0,d1,…,dn)) 一样。

7.np.random.choice(a, size=None, replace=True, p=None) 对一维数组a采样,可重复采样

8.np.random.permutation(x) 将数组打乱,多维数组按第一维度打乱。返回打乱后的数组,不会改变x。

9.np.random.random_sample(x) 将数组x按第一个维度打乱,原地打乱,没有返回值。

3.随机种子

random.seed(a=None)

如果不使用随机种子,那么每一次随机的值都是不一样的,当我们的程序希望生成的随机数能够复现的时候,就可以设置 seed()函数,因为他生成的随机数是固定的。如果是numpy的随机种子,那就是np.random.seed()

np.random.seed(10)
b = np.random.randint(1,4,(3,4))
print(b)
c = np.random.randint(1,4,(3,4))
print(c)

当不使用np.random.seed(10)时,b和c每一次的输出结果都是随机的。使用随机种子后,上面程序不管运行多少次,结果都是一样的,不过b和c的值不一样,如果我们想让b和c的值也一样,可以在给c赋值前重行运行一下相同的随机种子,这样b和c的值相同。

np.random.seed(10)
b = np.random.randint(1,4,(3,4))
print(b)
np.random.seed(10)
c = np.random.randint(1,4,(3,4))
print(c)
发布了57 篇原创文章 · 获赞 260 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_40692109/article/details/104734684