python常用random随机函数汇总,用法详解及函数之间的区别--一图了解python随机函数

python中常用的随机函数的用法汇总分类以及相似函数之间的区别: 一图了解python的随机函数

1. 常用的随机函数总结介绍

1. random.random(): 返回随机生成的一个浮点数,范围在[0,1)之间

2. random.uniform(a, b): 返回随机生成的一个浮点数,范围在[a, b)之间

3. np.random.rand(d0, d1, …, dn): 返回一个或一组浮点数,范围在[0, 1)之间

4. np.random.normal(loc=a, scale=b, size=()): 返回满足条件为均值=a, 标准差=b的正态分布(高斯分布)的概率密度随机数

5. np.random.randn(d0, d1, … dn): 返回标准正态分布(均值=0,标准差=1)的概率密度随机数

6. np.random.standard_normal(size=()): 返回标准正态分布(均值=0,标准差=1)的概率密度随机数

7. random.sample(k): 从总体序列或集合中随机选取k个唯一的元素

8. np.random.randint(a, b, size=(), dtype=int): 返回在范围在[a, b)中的随机整数(含有重复值)

9. random.randrange(a, b, step=c): 在指定范围内,在指定的基数和步长值形成的集合中获取1个随机数值

10. random.choice(x): 从指定的序列x中随机获取一个数据

11. random.shuffle(x): 将一个列表x中的元素打乱,随机排序(俗称:洗牌)

12. random.seed(): 设定随机种子

2. 示例代码(python)

1. random.random() - 返回随机生成的一个浮点数,范围在[0,1)之间

import numpy as np

import pandas as pd

import random

# 随机生成一个在[0, 1)范围的浮点数

x = random.random()

print(x, type(x))

0.5714025946899135

2. random.uniform(x, y) - 返回随机生成的一个浮点数,范围在[x, y)之间

# 随机生成一个在[15.0, 20.0)之间的浮点数

x = random.uniform(15.0, 20.0)

print(x, type(x))

17.144445273375574

3. np.random.rand(d0, d1, …, dn) - 返回一个或一组浮点数,范围在[0, 1)之间

x = np.random.rand()

y = np.random.rand(2)

print(x, type(x))

print(y, type(y))

小结:np.random.rand()的用法与random.random()相似,都是返回范围在[0, 1)之间的随机浮点数。唯一不同的是,random.random()只能返回一个随机数;而np.random.rand()则可以根据设置返回多个数据。

4. np.random.normal() - 返回正态分布(高斯分布)的概率密度随机数

# np.random.normal(loc=a, scale=b, size=()) - 返回满足条件为均值=a, 标准差=b的正态分布(高斯分布)的概率密度随机数,size默认为None(返回1个随机数),也可以为int或数组

x = np.random.normal(10, 0.2, 2)

y = np.random.normal(0, 0.1, (2, 3))

print(x, type(x))

print(y, type(y))

5. np.random.randn() - 返回标准正态分布的概率密度随机数

# np.random.randn(d0, d1, ... dn): 返回标准正态分布(均值=0,标准差=1)的概率密度随机数,

x = np.random.randn()

y = np.random.randn(3)

z = np.random.randn(2, 2)

print(x, type(x))

print(y, type(y))

print(z, type(z))

6. np.random.standard_normal() - 返回标准正态分布的概率密度随机数

# np.random.standard_normal(): 返回标准正态分布(均值=0,标准差=1)的概率密度随机数, size默认为None(返回1个随机数),也可以为int或数组

x = np.random.standard_normal()

y = np.random.standard_normal(size=(2,2))

print(x, type(x))

print(y, type(y))

小结:上述可见np.random.rand()与np.random.standard_normal()的方法结果相似,都是返回合符标准正态分布的随机浮点数或数组。

7. random.sample(k) - 在总体序列或集合中返回k个唯一的随机元素(不包含重复值)

# 从0-10的序列中返回5个不重复的随机数字

x = random.sample(range(0, 10), 5)

print(x, type(x))

[9, 0, 6, 3, 4]

8. np.random.randint(a, b, size=(), dytpe=int) - 返回在范围在[a, b)中的一组随机整数(包含重复值)

# np.random.randint(a, b, sizie=(), dytpe=int) - size默认为None(返回1个随机数),也可以为int或数组

# 从序列[0, 10)之间返回shape=(2,5)的10个随机整数(包含重复值)

x = np.random.randint(0, 10, size=(2, 5))

# 从序列[15, 20)之间返回1个随机整数(size默认为None, 则返回1个随机整数)

y = np.random.randint(15, 20)

print(x, type(x))

print(y, type(y))

小结:random.sample()与np.random.randint()的最大区别在于,random.sample()返回的是唯一的随机元素,即不含有重复值;而np.random.randint()是返回含有重复值的随机数值。

9. random.randrange(a, b, step=c) - 在指定范围内,在指定的基数和步长值形成的集合中获取1个随机数值

# 在[6, 16]范围内,在6的基础上按步长=3形成的递增集合中获取1个随机数

x = random.randrange(6, 16, 3)

print(x, type(x))

15

10. random.choice(x) - 从指定的序列x中随机获取一个数据

# 从x列表中随机返回一个数值

x = [100, 20, 90, 5, 12]

print(random.choice(x))

90

11. random.shuffle(x) - 将一个列表x中的元素打乱,随机排序(俗称:洗牌)

# 将x列表中的元素打乱并重新随机排序

x = [1, 2, 3, 4, 5]

random.shuffle(x)

print(x)

[3, 4, 2, 1, 5]

12. random.seed() - 设定随机种子

# 在设定随机种子为10之后,random.random()的随机数将被直接设定为:0.5714025946899135

random.seed(10)

x = random.random()

x

0.5714025946899135

3. 结束语

总结上述随机函数的相似或区别地方:

np.random.rand()的用法与random.random()相似,都是返回范围在[0, 1)之间的随机浮点数。唯一不同的是,random.random()只能返回一个随机数,而np.random.rand()则可以根据设置返回多个数据。np.random.rand()与np.random.standard_normal()的方法结果相似,都是返回合符标准正态分布的随机浮点数或数组。random.sample()与np.random.randint()的最大区别在于,random.sample()返回的是唯一的随机元素,即不含有重复值;而np.random.randint()是返回含有重复值的随机数值。

随便看看

点击进入首页