欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python 随机选择list或numpy.ndarray中n个元素

发布时间:2024/3/12 python 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python 随机选择list或numpy.ndarray中n个元素 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

python 随机选择list或numpy.ndarray中n个元素

1. 从一个list中随机选取一个元素

  • random.choice(data)
import random data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] random.choice(data) # 随机选取一个元素

2. 从一个list中随机选取多个元素

import random data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] sample_num = 5 random.sample(data, sample_num) # 结果['a', 'd', 'b', 'f', 'c'],每次运行结果不同。

3. 从data和label中随机选取多个元素

在制作数据集时,可能会有只用50%的数据的要求,所以,我们从原数据集中随机抽取30%的数据,这还要求了,data和label是对应的。接下来,讲讲我的做法。创建一个索引list,在索引list中选取N个索引,根据这些索引将data和label的数据提取出来。

import random data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] label = [0, 1, 2, 3, 4, 5, 6, 7] sample_num = int(0.5 * len(data)) # 假设取50%的数据sample_list = [i for i in range(len(data))] # [0, 1, 2, 3, 4, 5, 6, 7] sample_list = random.sample(sample_list, sample_num) #随机选取出了 [3, 4, 2, 0] sample_data = [data[i] for i in sample_list] # ['d', 'e', 'c', 'a'] sample_label = [label[i] for i in label] # [3, 4, 2, 0]

4. 从numpy.ndarray中随机选取多个元素

承接3. 只是data和label是numpy.ndarray对象如何用sample_list来取出呢?
了解numpy.ndarray切片的同学们肯定都知道啦,这里我简单写一下。

import numpy as np data = np.array([[ 0, 1, 2, 3],[ 4, 5, 6, 7],[ 8, 9, 10, 11],[12, 13, 14, 15]]) # shape:(4,4) label = np.array([1,2,3,4]) # shape:(4,)sample_num = int(0.5 * len(data)) # 假设取50%的数据 sample_list = [i for i in range(len(data))] # [0, 1, 2, 3] sample_list = random.sample(sample_list, sample_num) # [1, 2]data = data[sample_list,:] # array([[ 4, 5, 6, 7], [ 8, 9, 10, 11]]) label = label[sample_list] # array([2, 3])

参考
python 随机选取列表中的元素 https://blog.csdn.net/zzc15806/article/details/84875070
感谢以上大大的博客!

总结

以上是生活随笔为你收集整理的python 随机选择list或numpy.ndarray中n个元素的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。