1. Python中的random库
Python自带了一个函数库random,可以方便地生成随机数。random库提供了基本的随机数生成函数。
1.1 生成随机整数
Python中生成随机整数的函数为randint(),该函数的语法如下:
import random
random.randint(a, b)
其中a、b分别为随机数的两个边界,返回一个[a, b]的整数随机数。下面是一个西瓜重量随机生成器的例子:
import random
weight = random.randint(1, 10)
print("The weight of the watermelon is: ", weight, "kg.")
可以运行多次,每次输出的重量不同。
1.2 生成随机浮点数
生成随机浮点数的函数为uniform(),该函数的语法如下:
import random
random.uniform(a, b)
其中a、b分别为随机数的两个边界,返回一个[a, b]的随机浮点数。假设您正在尝试构建一个简单的游戏,该游戏要求玩家随机掉落物品,您可以使用该函数来模拟物品的随机掉落位置。
1.3 生成随机选择
当需要从一堆数据中随机选择一个值时,可以使用choice()函数。该函数的语法如下:
import random
random.choice(sequence)
其中sequence是输入的序列,可以是list、tuple或string等。下面是一个用随机选择的方法确定谁要先行棋:
import random
players = ['Alice', 'Bob', 'Charlie', 'Dave']
first_player = random.choice(players)
print("The first player is: ", first_player)
1.4 打乱顺序
shuffle()函数可以打乱序列,它的语法如下:
import random
random.shuffle(x[, random])
其中x是可变的序列类型,比如list类型,random是一个可选的随机强制项。下面是一个打乱一副牌的例子:
import random
deck = ['Ace', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', 'King']
random.shuffle(deck)
print("The shuffled deck is: ", deck)
2. Numpy中的随机数生成器
Numpy库是一个Python常用的科学计算库,也内置了随机数生成器。下面我们详细介绍一下Numpy中常用的随机数生成函数。
2.1 简单随机数生成函数
rand()函数能够返回一个由[0,1)内均匀分布的样本值构成的数组。语法如下:
import numpy as np
np.random.rand(d0, d1, ..., dn)
其中d0, d1, ..., dn是数组的维度。下面是一个例子:
import numpy as np
print("Sample from a uniform distribution: ", np.random.rand(3,2))
其中我们生成了一个3x2的矩阵,其元素取自于[0,1)内的均匀分布。
2.2 标准正态分布随机数生成函数
randn()函数能够返回一个由标准正态分布(均值为0,方差为1)的样本数值构成的数组。语法如下:
import numpy as np
np.random.randn(d0, d1, ..., dn)
下面是一个例子:
import numpy as np
print("Sample from a standard normal distribution: ", np.random.randn(3,2))
我们生成了一个3x2的矩阵,其元素取自于标准正态分布。
2.3 从一个区间中生成随机整数的函数
randint()函数能够返回一个由low到high之间整数值的样本数值构成的数组。语法如下:
import numpy as np
np.random.randint(low, high=None, size=None, dtype='l')
其中low是随机整数的下限(包含),而high则是上限(不包含)。下面是一个例子:
import numpy as np
print("Sample from a range: ", np.random.randint(10, 20, size=(3,2)))
我们生成了一个3x2的矩阵,其元素取自于区间[10,20)内的整数。
2.4 从指定数组中等概率地随机抽取元素
choice()函数能够从一个数组或序列中等概率地随机抽取元素。语法如下:
import numpy as np
np.random.choice(a, size=None, replace=True, p=None)
其中a为对应的数组或序列,size为输出样本数的形状,replace为采样元素是否可重复,p为各元素对应的概率分布。下面是一个例子,假设一家公司有1000名员工,考评得分介于60到100之间,我们将随机抽取30名员工:
import numpy as np
score = np.arange(60, 100, 1)
selected = np.random.choice(score, 30, replace=False)
print("Selected staffs: ", selected)
我们生成了一个分数数组,然后用choice()函数等概率地随机抽取了30个分数。
3. 总结
在Python中,我们可以使用random库来生成随机数。通过其中提供的randint()和uniform()等函数,我们可以生成随机整数和随机浮点数。我们还介绍了choice()函数,用来从某个序列中选择一个随机元素。如果需要打乱一组数据,我们可以使用shuffle()函数。除此之外,我们还介绍了numpy库中的随机数生成器,其中包括了rand()、randn()、randint()和choice()等函数。无论是在Python还是在Numpy中,生成随机数都是非常简单的。