NumPy 中的随机数
什么是随机数?
随机数并不意味着每次都会产生不同的数字。随机意味着某些东西在逻辑上是不可预测的。
伪随机和真随机。
计算机依赖于程序运行,而程序是一套明确的指令集。所以这意味着必须有一些算法来生成随机数。
如果存在一个生成随机数的程序,那么它就可以被预测,因此它并不是真正的随机。
通过生成算法产生的随机数被称为伪随机数。
我们可以生成真正的随机数吗?
可以。为了在计算机上生成真正的随机数,我们需要从某些外部来源获取随机数据。这些外部来源通常是我们的击键、鼠标移动、网络上的数据等。
我们不需要真正的随机数,除非它与安全性相关(例如加密密钥)或应用程序的基础是随机性(例如数字轮盘)。
在本教程中,我们将使用伪随机数。
生成随机数
NumPy 提供了 random
模块来处理随机数。
实例
生成 0 到 100 之间的随机整数:
from numpy import random x = random.randint(100) print(x)
生成随机浮点数
random 模块的 rand()
方法返回 0 到 1 之间的随机浮点数。
实例
生成一个从 0 到 1 的随机浮点数:
from numpy import random x = random.rand() print(x)
生成随机数组
在 NumPy 中,我们使用数组,您可以使用上面示例中的两种方法来创建随机数组。
整数
randint()
方法接受一个 size
参数,您可以在其中指定数组的形状。
实例
生成一个包含 5 个从 0 到 100 的随机整数的一维数组:
from numpy import random x=random.randint(100, size=(5)) print(x)
实例
生成一个 3 行的二维数组,每行包含 5 个从 0 到 100 的随机整数:
from numpy import random x = random.randint(100, size=(3, 5)) print(x)
浮点数
rand()
方法也允许您指定数组的形状。
实例
生成包含 5 个随机浮点数的一维数组:
from numpy import random x = random.rand(5) print(x)
实例
生成一个 3 行的二维数组,每行包含 5 个随机数:
from numpy import random x = random.rand(3, 5) print(x)
从数组中生成随机数
choice()
方法允许您基于一个值数组生成一个随机值。
choice()
方法接受一个数组作为参数,并随机返回其中一个值。
实例
返回数组中的一个值:
from numpy import random x = random.choice([3, 5, 7, 9]) print(x)
choice()
方法还允许您返回值数组。
添加一个 size
参数来指定数组的形状。
实例
生成一个由数组参数中的值(3、5、7 和 9)组成的二维数组:
from numpy import random x = random.choice([3, 5, 7, 9], size=(3, 5)) print(x)