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中的yield函数的用法
Apr 03 Python
Scrapy使用的基本流程与实例讲解
Oct 21 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
Dec 10 Python
Python使用pymongo库操作MongoDB数据库的方法实例
Feb 22 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
Apr 15 Python
Gauss-Seidel迭代算法的Python实现详解
Jun 29 Python
anaconda如何查看并管理python环境
Jul 05 Python
Python的log日志功能及设置方法
Jul 11 Python
python找出因数与质因数的方法
Jul 25 Python
如何把外网python虚拟环境迁移到内网
May 18 Python
使用django自带的user做外键的方法
Nov 30 Python
Python图片检索之以图搜图
May 31 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系统命令函数使用分析
2013/07/05 PHP
PHP生成Gif图片验证码
2013/10/27 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
js图片自动切换效果处理代码
2013/05/07 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
JavaScript中reduce()方法的使用详解
2015/06/09 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
python实现获取Ip归属地等信息
2016/08/27 Python
用Python实现随机森林算法的示例
2017/08/24 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
Python tkinter常用操作代码实例
2020/01/03 Python
初学者学习Python好还是Java好
2020/05/26 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
项目经理的岗位职责
2013/11/23 职场文书
长辈证婚人证婚词
2014/01/09 职场文书
消防安全检查制度
2014/02/04 职场文书
秋游活动策划方案
2014/02/16 职场文书
跟单业务员岗位职责
2014/03/08 职场文书
经销商订货会主持词
2014/03/27 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
开工仪式策划方案
2014/05/23 职场文书
党员个人对照检查材料思想汇报
2014/09/16 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA
i7 6700处理器相当于i5几代
2022/04/19 数码科技