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中datetime常用时间处理方法
Jun 15 Python
Python+matplotlib实现华丽的文本框演示代码
Jan 22 Python
利用python将json数据转换为csv格式的方法
Mar 22 Python
Python实现按中文排序的方法示例
Apr 25 Python
python 读取视频,处理后,实时计算帧数fps的方法
Jul 10 Python
Python中asyncio与aiohttp入门教程
Oct 16 Python
python3+pyqt5+itchat微信定时发送消息的方法
Feb 20 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
Aug 07 Python
使用Python为中秋节绘制一块美味的月饼
Sep 11 Python
用Python制作mini翻译器的实现示例
Aug 17 Python
python链表类中获取元素实例方法
Feb 23 Python
python 中的@运算符使用
May 26 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使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
javascript进行数组追加方法小结
2014/06/16 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
微信小程序背景音乐开发详解
2019/12/12 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
[01:17:47]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python实现微信公众平台自定义菜单实例
2015/03/20 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
python 列表推导式使用详解
2019/08/29 Python
解决Django no such table: django_session的问题
2020/04/07 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
美国时尚女装在线:Missguided
2016/12/03 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
中职生自荐信
2013/10/13 职场文书
骨干教师培训感言
2014/01/16 职场文书
建议书标准格式
2014/03/12 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
大学生作弊检讨书
2014/09/11 职场文书
租房协议书范例
2014/10/14 职场文书
运动会开幕词
2015/01/28 职场文书
医院合作意向书范本
2015/05/08 职场文书
解除租赁合同协议书
2016/03/21 职场文书
python小程序之飘落的银杏
2021/04/17 Python
python开发飞机大战游戏
2021/07/15 Python
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
2022/04/11 Vue.js