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 18 Python
python实现360的字符显示界面
Feb 21 Python
举例讲解Python中的Null模式与桥接模式编程
Feb 02 Python
python中is与双等于号“==”的区别示例详解
Nov 21 Python
python数字图像处理之骨架提取与分水岭算法
Apr 27 Python
基于python的socket实现单机五子棋到双人对战
Mar 24 Python
Python画图实现同一结点多个柱状图的示例
Jul 07 Python
Python中PyQt5/PySide2的按钮控件使用实例
Aug 17 Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 Python
pytorch实现mnist分类的示例讲解
Jan 10 Python
在keras中model.fit_generator()和model.fit()的区别说明
Jun 17 Python
简单的命令查看安装的python版本号
Aug 28 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
zend framework多模块多布局配置
2011/02/26 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
2014/08/21 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
PHP实现搜索相似图片
2015/09/22 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
2016/02/14 Javascript
基于javascript实现的快速排序
2016/12/02 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
2017/02/19 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
footer定位页面底部(代码分享)
2017/03/07 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
JavaScript多种滤镜算法实现代码实例
2019/12/10 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
2020/06/04 Javascript
python自带的http模块详解
2016/11/06 Python
python 读取DICOM头文件的实例
2018/05/07 Python
Python+selenium点击网页上指定坐标的实例
2019/07/05 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
关于 HTML5 的七个传说小结
2012/04/12 HTML / CSS
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
Kivari官网:在线购买波西米亚服装
2018/10/29 全球购物
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
2019史上最全Database工程师题库
2015/12/06 面试题
酒店管理专业毕业生推荐信
2013/11/10 职场文书
党支部反对四风思想汇报
2014/10/10 职场文书
如何利用python实现Simhash算法
2022/06/28 Python