生成随机数在数据科学和计算机科学中是一个常见的需求。在 Python 中,有几种方法可以生成随机数,下面列举了其中的一些常见方法:
1.random 模块:
Python 标准库中的 random 模块提供了许多生成随机数的函数。
import random
#生成一个 [0, 1) 范围内的随机浮点数
a=()
#生成一个 [a, b) 范围的随机浮点数
b=(1,10)
# 生成一个 [a, b) 范围内的随机整数
c=(1,10)
# 从指定列表中随机选择一个元素
lst=[1,2,3,4,5]
d=(lst)
# 打乱列表中元素的顺序
my_list = [1, 2, 3, 4, 5]
(my_list)
库:
NumPy 是用于科学计算的一个常用库,它提供了更多生成各种类型随机数的函数。
import numpy as np
#默认的生成的都是一位
#生成一个 [0, 1) 范围内的随机浮点数
a1=()
#生成x个[0, 1) 范围内的随机浮点数
a2=(x)
#生成x*y的[0, 1) 范围内的随机浮点数数组
a3=(x,y)
#生成一位[0,10)内的随机整数,下面的均可行
b1=(10)
=(10,size=1)
=np,(0,10)
=(0,10,1)
=(0,10,size=1)
#生成x*y的[0,10)范围内的随机整数数组
b2=(0,10,size=(x,y))
#生成指定形状的标准正态分布(均值为 0,标准差为 1)的随机浮点数
c1=(10)
c2=,randn(x,y)
#从给定列表或数组中随机选择元素:
lst=[1,2,3,4,5]
d1=(lst)
#生成10位[0,10)随机浮点数:
(0,10,10)
#可以生成数组,不知道的就加个size=(x,y)试试
3.差异
-
功能性差异:
-
random
模块提供了一些基本的生成随机数的函数,如生成随机整数、随机浮点数、随机选择等。 -
则提供了更多种类的随机数生成函数,包括但不限于上述的基本函数,还有生成符合特定分布的随机数(如正态分布、均匀分布等)、随机排列数组等功能。
-
-
效率:
- NumPy 的
在生成大量随机数时通常比 Python 的
random
模块更高效。因为 NumPy 库是用 C 语言编写的,在生成随机数时可以调用底层的高效代码。 - 此外,NumPy 的随机数生成函数通常能够生成多维数组,而 Python 的
random
模块则主要针对生成单个数值。
- NumPy 的
-
种子控制:
- 在生成随机数时,种子(seed)是一个起始点,通过种子可以生成确定性的随机数序列。
random
模块和都提供了设置种子的功能,但是在使用上有所不同。在
random
模块中,可以通过()
来设置种子,而在中,可以通过
()
来设置种子。 - 另外,
还支持更复杂的随机数状态控制,可以通过
类来创建一个随机数生成器对象,并在需要时复制生成器状态,使得同一序列的随机数可以在不同地方进行重现。
- 在生成随机数时,种子(seed)是一个起始点,通过种子可以生成确定性的随机数序列。