python 随机选择list或numpy.ndarray中n个元素
python 随机选择list或numpy.ndarray中n个元素1. 从一个list中随机选取一个元素random.choice(data)import randomdata = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']random.choice(data) # 随机选取一个元素2. 从一个list中随机选取多个元素import ra...
·
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
感谢以上大大的博客!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献7条内容
所有评论(0)