基于Python中random.sample()
函数的替代方案有很多,下面将针对其中两种进行详细介绍。
方案一:使用numpy.random.choice()
numpy.random.choice()
函数是numpy库中的随机抽样函数,可以方便地替代random.sample()
函数。其用法如下:
numpy.random.choice(a, size=None, replace=True, p=None)
其中:
a
:表示从中抽取样本的数组或类似数据结构(list、tuple、set等),该参数是必须的;size
:表示抽取的样本数量或形状,该参数可选,默认为None,返回单个数据;replace
:表示是否可以重复抽取同一个元素,该参数可选,默认为True,即可以重复抽取;p
:表示用于指定每个元素被抽取的概率,该参数可选,且必须是与a
参数等长的一维数组。
下面是一个例子,从数组data
中随机抽取3个元素:
import numpy as np
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
samples = np.random.choice(data, 3, replace=False)
print(samples)
输出结果为:
array([10, 2, 9])
方案二:使用random.shuffle()和切片操作
random.shuffle()
函数可以打乱一个序列的顺序,被打乱的序列必须是一个可变序列(list、bytearray等),它没有返回值,但会直接修改传入的序列。因此,如果想要随机选取序列的前几个元素,可以使用它和切片操作组合,示例如下:
import random
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random.shuffle(data)
samples = data[:3]
print(samples)
其中,random.shuffle(data)
打乱了data
序列中元素的顺序,然后通过data[:3]
切片操作,选择前三个元素。
输出结果为:
[5, 6, 4]
通过以上两种方式,都可以方便地完成随机抽样的操作。需要根据实际情况选择相应的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于Python中random.sample()的替代方案 - Python技术站