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检测远程服务器tcp端口的方法
Mar 14 Python
详解python的几种标准输出重定向方式
Aug 15 Python
numpy数组拼接简单示例
Dec 15 Python
python保存log日志,实现用log日志画图
Dec 24 Python
PyCharm第一次安装及使用教程
Jan 08 Python
Tensorflow分批量读取数据教程
Feb 07 Python
tensorflow之自定义神经网络层实例
Feb 07 Python
Python多进程编程multiprocessing代码实例
Mar 12 Python
python轮询机制控制led实例
May 03 Python
关于Kotlin中SAM转换的那些事
Sep 15 Python
Python批量将csv文件转化成xml文件的实例
May 10 Python
python中24小时制转换为12小时制的方法
Jun 18 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 Global定义全局变量使用说明
2013/08/15 PHP
php从字符串创建函数的方法
2015/03/16 PHP
深入浅出php socket编程
2015/05/13 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
2017/11/28 PHP
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
javascript中clone对象详解
2014/12/03 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
利用css+原生js制作简单的钟表
2020/04/07 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
javascript中undefined的本质解析
2019/07/31 Javascript
用VsCode编辑TypeScript的实现方法
2020/05/07 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
python中map、any、all函数用法分析
2015/04/21 Python
Python for循环中的陷阱详解
2018/07/13 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
python实现汽车管理系统
2018/11/30 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
django model object序列化实例
2020/03/13 Python
五款漂亮的纯CSS3动画按钮的实例教程
2014/11/21 HTML / CSS
AmazeUI导航的示例代码
2020/08/14 HTML / CSS
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
商场消防管理制度
2014/01/12 职场文书
地震慰问信
2015/02/14 职场文书
律师函格式范本
2015/05/27 职场文书
预备党员考察意见范文
2015/06/01 职场文书
党员证明模板
2015/06/19 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
电力安全学习心得体会
2016/01/18 职场文书
python 算法题——快乐数的多种解法
2021/05/27 Python
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL