Python中生成随机数的方法

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中,生成随机数都是非常简单的。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签