python - 我有两个列表,我需要从一个列表中选择一个随机样本,然后从第二个列表中选择相应的索引
问题描述
我有两个清单。一个带有样本数据,一个带有相应的标签。我需要从样本数据中随机挑选数据,但我也需要它们对应的标签。
这是我目前所做的:
amount = int(5000 * percent)
rawTrainingData = random.sample(rawTrainingData, amount)
原始训练数据是我的第一个列表。我的第二个列表是 trainingLabels,但我希望它与第一个列表相对应。
例如,如果您有这样的列表:
['A','B','C','D']
['1','2','3','4']
我想从第一个列表中选择两个随机元素,并从第二个列表中选择它们相应的索引。
例子:
['C','A']
['3','1']
['B','D']
['2','4']
最初,两个列表的长度相同,并且彼此对应。一旦我随机化第一个数组,我只希望它们保持对应。
解决方案
将两个列表压缩在一起,从压缩列表中选择一个项目:
import random
a = ['A','B','C','D']
b = ['1','2','3','4']
c = list(zip(a,b))
print(random.choice(c))
可以输出:
('A', '1')
('D', '4')
如果需要,请“解压缩”。并用于sample
避免重复:
list1=[]
list2=[]
for a,b in random.sample(c,2):
list1.append(a)
list2.append(b)
可以输出:
>>> list1
['B', 'A']
>>> list2
['2', '1']
>>>
推荐阅读
- excel - Excel 图表导出为空白
- android - 与 FileProvider 共享日志文件失败
- javascript - 这是在旧版本节点中避免回调地狱的可接受方法吗?
- jenkins - 使用 Jenkins CI/CD 管道在 EC2 中的 SVN 结帐项目的物理位置
- matlab - 误码率计算 15,11 汉明码图
- ios - 使用 UIAppearence 设置 UITableViewCell 选择的背景颜色不起作用
- html - HTML输出文本不会根据闪亮的CSS文件而改变
- powershell - 从 nuget 帮助输出中选择文本时,PowerShell 退出代码 1
- oracle - ORA-14287在新表空间上重建复合分区索引
- nginx - 设置过期标头 nginx conf 仅适用于前端