Python如何生成随机数?
在Python中生成随机数是常见的需求。比如我们需要模拟数据,输入一些随机的不固定的数值,计算起来比较方便;再比如在多人在线游戏,需要指定随机的起始位置,多人虚拟位移等等。
不过,在Python中,我们并不能直接生成“真正意义”的随机数,因为计算机本质上是一种按照规律而工作的机器。我们生成的随机数是伪随机数,是有规律可循的。
我们可以借助Python的第三方库,通过引入一些随机数生成函数,来实现这个功能。下面我们看看这些函数如何使用。
更多Python文章,请阅读:Python 教程
random库
Python中标准的随机数库是random。它提供了多种生成随机数的函数,比如randint、uniform、random、choice和shuffle等等。让我们逐个了解一下。
randint函数
randint函数用于返回一个指定范围内的整数,也就是随机生成指定范围内的一个整数。
import random
print(random.randint(1,100))
上述代码的输出结果是1-100之间的随机整数。
uniform函数
uniform函数用于生成一个范围内的随机小数,同样可以指定下限和上限。
import random
print(random.uniform(1,100))
上述代码的输出结果是1-100之间的随机小数。
random函数
random函数用于生成一个[0,1)之间的随机小数,也就是从0到不到1的一个随机数。
import random
print(random.random())
choice函数
从列表或元组中随机选择一个元素。
import random
print(random.choice(['a','b','c']))
shuffle函数
shuffle函数用于将一个可迭代对象中的元素随机排序,该函数没有返回值,但会直接修改原对象。
import random
lst = ['a','b','c']
random.shuffle(lst)
print(lst)
numpy库
numpy库是Python的一个科学计算库,它也提供了一个random子模块。numpy中的random函数库相比于Python中内置的random库,提供了更多的随机数生成函数,比如生成正态分布、指数分布等特殊分布的随机数。同时numpy提供的功能非常强大且方便使用,是许多科学计算的首选库之一。我们看看其中的一些随机数生成函数。
normal函数
normal函数用于生成指定均值和标准差的正态分布随机数。
import numpy as np
print(np.random.normal(0,1))
上述代码的输出结果是一个均值为0,标准差为1的正态分布随机数。
exponential函数
exponential函数用于生成指定参数的指数分布随机数。
import numpy as np
print(np.random.exponential(1))
上述代码的输出结果是一个参数为1的指数分布随机数。
poisson函数
poisson函数用于生成指定平均数的泊松分布随机数。
import numpy as np
print(np.random.poisson(5))
上述代码的输出结果是一个平均数为5的泊松分布随机数。
randint函数
randint函数用于返回一个指定范围内的整数。numpy中的randint函数与Python的random库中不同之处在于,numpy中生成的随机整数是包含上界和下界的。
import numpy as np
print(np.random.randint(1,10))
上述代码的输出结果是1-10之间的随机整数,其中包含10这个数。
总结
本文介绍了Python中生成随机数的两个库:random和numpy。通过这两个库,我们可以实现不同类型的随机数生成功能,比如整数、小数、正态分布、指数分布等等。其中,random库是Python内置的标准库,提供了简单易用的基本随机数生成功能,而numpy库则是Python的科学计算库之一,提供了更多种类的随机数生成函数,并具有其他科学计算方面的强大功能。使用者可以根据实际需求选择不同的库和函数来实现自己的功能。