Python 按比例获取样本数据或执行任务的实现代码


Posted in Python onDecember 03, 2020

按比例获取样本数据或执行任务

By:授客 QQ:1033553122

开发环境

win 10

python 3.6.5

需求

已知每种分类的样本占比数,及样本总数,需要按比例获取这些分类的样本。比如,我有4种任务要执行,分别为任务A,任务B,任务C,任务D, 要求执行的总任务次数为100000,且不同分类任务执行次数占比为 A:B:C:D = 3:5:7:9,且在宏观上这些任务同时进行

代码实现

#!/usr/bin/env python
# -*- coding:utf-8 -*-
 
 
__author__ = 'shouke'
 
import time
from copy import deepcopy
 
 
def main():
 
  class_propotion_map = {'A':3, 'B':5, 'C':7, 'D':7} # 分类及样本数比例映射
  class_list = [] # 分类
  class_proption_list = [] # 存放分类样本数比例
 
  for class_type, propotion in class_propotion_map.items(): # 同一个循环,可以保证比例索引和对应分类索引一一对应
    class_list.append(class_type)
    class_proption_list.append(propotion)
 
  temp_class_propotion_list = deepcopy(class_proption_list)
  result = []
 
  t1 = time.time()
  total_sample_num = 100000 #任务执行次数
  for i in range(1, total_sample_num+1):
    max_propotion = max(temp_class_propotion_list)
    if max_propotion > 0:
      index = temp_class_propotion_list.index(max_propotion)
      result.append(class_list[index])
      temp_class_propotion_list[index] -= 1
    elif max_propotion == 0 and min(temp_class_propotion_list) == 0:
      temp_class_propotion_list = deepcopy(class_proption_list)
      index = temp_class_propotion_list.index(max(temp_class_propotion_list))
      result.append(class_list[index])
      temp_class_propotion_list[index] -= 1

  t2 = time.time()
  from collections import Counter
  c = Counter(result)
  for item in c.items():
    print(item[0], item[1]/total_sample_num)
  print('耗时:%s'%(t2-t1))
 
main()

运行结果

Python 按比例获取样本数据或执行任务的实现代码

说明

以上方式大致实现思路就是,获取每种分类样本数所占比例副本数据列表,然后每次从中获取最大比例值,并查找该比例值对应的分类(获取分类后就可以根据需要构造、获取分类样本数据),找到目标分类后,把比例数据副本中该比例值减1,直到最大比例和最小比例都等于0,接着重置比例副本数据为样本数比例值,重复前面的过程,直到样本数达到目标样本总数,这种方式实现的前提是得提前知道样本总数及不同分类样本数所占比例,且比例值为整数

到此这篇关于Python 按比例获取样本数据或执行任务的文章就介绍到这了,更多相关Python获取样本数据执行任务内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python随手笔记之标准类型内建函数
Dec 02 Python
举例讲解Python中的迭代器、生成器与列表解析用法
Mar 20 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
May 08 Python
浅谈Pandas中map, applymap and apply的区别
Apr 10 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
完美解决python3.7 pip升级 拒绝访问问题
Jul 12 Python
python 标准差计算的实现(std)
Jul 29 Python
解决django后台管理界面添加中文内容乱码问题
Nov 15 Python
在django中使用apscheduler 执行计划任务的实现方法
Feb 11 Python
pyinstaller将含有多个py文件的python程序做成exe
Apr 29 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 Python
Python OpenGL基本配置方式
May 20 Python
用 Django 开发一个 Python Web API的方法步骤
Dec 03 #Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 #Python
python 使用cycle构造无限循环迭代器
Dec 02 #Python
python 使用csv模块读写csv格式文件的示例
Dec 02 #Python
python 发送邮件的四种方法汇总
Dec 02 #Python
如何用PyPy让你的Python代码运行得更快
Dec 02 #Python
python 实现波浪滤镜特效
Dec 02 #Python
You might like
PHP将字符串首字母大小写转换的实例
2017/01/21 PHP
关于PHP5.6+版本“No input file specified”问题的解决
2019/12/11 PHP
彪哥1.1(智能表格)提供下载
2006/09/07 Javascript
myFocus slide3D v1.1.0 使用方法与下载
2011/01/12 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
JQuery 控制内容长度超出规定长度显示省略号
2014/05/23 Javascript
Javascript中实现trim()函数的两种方法
2015/02/04 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
Boostrap实现的登录界面实例代码
2016/10/09 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
2019/11/14 Javascript
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
使用Python编写vim插件的简单示例
2015/04/17 Python
Python实现队列的方法
2015/05/26 Python
Python fileinput模块使用实例
2015/05/28 Python
Python文件与文件夹常见基本操作总结
2016/09/19 Python
Python Queue模块详细介绍及实例
2016/12/27 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
python机器学习库常用汇总
2017/11/15 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
详解python中Numpy的属性与创建矩阵
2018/09/10 Python
Python字符串对象实现原理详解
2019/07/01 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
如何写一份好的自荐信
2014/01/02 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
2015年春节标语口号
2014/12/09 职场文书
公司搬迁通知
2015/04/20 职场文书
导游词之苏州盘门景区
2019/11/12 职场文书
mysql数据库入门第一步之创建表
2021/05/14 MySQL