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中尾递归用法实例详解
Apr 28 Python
关于Python面向对象编程的知识点总结
Feb 14 Python
基于python中pygame模块的Linux下安装过程(详解)
Nov 09 Python
Python socket实现多对多全双工通信的方法
Feb 13 Python
python dlib人脸识别代码实例
Apr 04 Python
python浪漫表白源码
Apr 05 Python
基于Python实现拆分和合并GIF动态图
Oct 22 Python
使用python制作一个解压缩软件
Nov 13 Python
利用Python如何实时检测自身内存占用
May 09 Python
opencv 查找连通区域 最大面积实例
Jun 04 Python
python 8种必备的gui库
Aug 27 Python
python实现学生信息管理系统(精简版)
Nov 27 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针对JSON操作实例分析
2015/01/12 PHP
php递归创建目录的方法
2015/02/02 PHP
PHP答题类应用接口实例
2015/02/09 PHP
smarty简单应用实例
2015/11/03 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
python字典排序实例详解
2015/05/20 Python
python关键字and和or用法实例
2015/05/28 Python
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
解读python如何实现决策树算法
2018/10/11 Python
python实现祝福弹窗效果
2019/04/07 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
python小项目之五子棋游戏
2019/12/26 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
Python pymsql模块的使用
2020/09/07 Python
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
介绍一下Java中标识符的命名规则
2014/02/03 面试题
岗位职责范本
2013/11/23 职场文书
四群教育工作实施方案
2014/03/26 职场文书
党员个人剖析材料(四风问题)
2014/10/07 职场文书
针对吵架老公保证书
2015/05/08 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python