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从零实现贝叶斯分类器的机器学习的教程
Mar 31 Python
深入了解Python数据类型之列表
Jun 24 Python
Python中Selenium模拟JQuery滑动解锁实例
Jul 26 Python
Python地图绘制实操详解
Mar 04 Python
python assert的用处示例详解
Apr 01 Python
Python中IP地址处理IPy模块的方法
Aug 16 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
Feb 28 Python
python的Jenkins接口调用方式
May 12 Python
python 实现分组求和与分组累加求和代码
May 18 Python
python爬取youtube视频的示例代码
Mar 03 Python
Python机器学习三大件之一numpy
May 10 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
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
php ftp文件上传函数(基础版)
2010/06/03 PHP
PHP及Zend Engine的线程安全模型分析
2011/11/10 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
php格式化json函数示例代码
2016/05/12 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
imagettftext() 失效,不起作用
2021/03/09 PHP
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
jQuery判断iframe中元素是否存在的方法
2013/05/11 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
jquery图片切换插件
2015/03/16 Javascript
jQuery在页面加载时动态修改图片尺寸的方法
2015/03/20 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
python单例模式实例分析
2015/04/08 Python
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
python 多个参数不为空校验方法
2019/02/14 Python
Python 数据库操作 SQLAlchemy的示例代码
2019/02/18 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
2019/05/07 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
Python操作qml对象过程详解
2019/09/26 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
一道SQL面试题
2012/12/31 面试题
学校2015年纠风工作总结
2015/05/15 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript