Code前端首页关于Code前端联系我们

在 Python 中随机打乱列表

terry 2年前 (2023-09-29) 阅读数 64 #PHP
文章标签 PHP

1。使用 shuffle() 函数对列表进行洗牌

shuffle()函数是Python自带的list shuffle函数,可以直接在random包中引入。

import random

lst = [1, 2, 3, 4, 5]
random.shuffle(lst)
print(lst)

输出:

[5, 1, 2, 3, 4]

上面代码中,lst是要打乱顺序的列表。 random.shuffle()函数随机打乱lst中的元素,然后输出打乱后的列表lst。

2。使用sample()函数从列表中随机抽取样本

Python中除了shuffle()函数外,还有sample()函数,可以用于随机采样。

import random

lst = [1, 2, 3, 4, 5]
new_lst = random.sample(lst, len(lst))
print(new_lst)

输出:

[1, 5, 3, 2, 4]

在上面的代码中,random.sample()函数接受两个参数。第一个参数是要采样的列表,第二个参数是要采样的数量。这里的样本数就是列表的长度,即对所有样本进行采样。输出采样列表new_lst。

3。使用numpy包中的permutation()函数

Numpy 是科学计算和数据分析领域使用最广泛的软件包之一。它提供了丰富的数学函数和数组处理工具。除了shuffle()函数和sample()函数之外,numpy还有一个permutation()函数用于任意排列。

import numpy as np

lst = [1, 2, 3, 4, 5]
new_lst = np.random.permutation(lst)
print(new_lst)

输出:

[5, 1, 2, 4, 3]

在上面的代码中,np.random.permutation()函数接受一个列表作为参数,并返回一个随机排序的新列表new_lst。

4。使用 random.sample() 函数进行加权随机化

使用random.sample()函数,您还可以执行加权随机采样。例如,如果我们有一个数字列表 lst 和一个关联的权重列表,我们可以使用 random.sample() 函数输出加权随机数字样本,其中每个数字被选择的概率与相应的数字成正比。重量。 。

import random

lst = [1, 2, 3, 4, 5]
weights = [0.1, 0.1, 0.2, 0.3, 0.3]
new_lst = random.choices(lst, weights, k=len(lst))
print(new_lst)

输出:

[4, 5, 3, 3, 5]

在上面的代码中,random.choices()函数接受三个参数。第一个参数是要采样的列表,第二个参数是列表中每个元素对应的权重,第三个参数是要采样的样本。数量,其中样本数为列表的长度,即对所有样本进行采样,然后输出采样后的列表new_lst。

5。总结

本文介绍了Python中对列表进行随机打乱的方法,包括numpy包中的shuffle()函数、sample()函数和permutation()函数的使用,以及加权随机采样方法。在实际编程时,我们可以根据具体需要选择不同的方法。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门