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 01 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
Mar 13 Python
python对离散变量的one-hot编码方法
Jul 11 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
Jun 19 Python
Python多线程爬取豆瓣影评API接口
Oct 22 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
Dec 04 Python
Python调用scp向服务器上传文件示例
Dec 22 Python
pytorch-神经网络拟合曲线实例
Jan 15 Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
Jul 13 Python
深入了解Python enumerate和zip
Jul 16 Python
Python3爬虫带上cookie的实例代码
Jul 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
php,ajax实现分页
2008/03/27 PHP
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
PHP创建桌面快捷方式的实例代码
2014/02/17 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
jQuery 全选 全不选 事件绑定的实现代码
2017/01/23 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
2017/12/09 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
如何手写简易的 Vue Router
2020/10/10 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
Python中分数的相关使用教程
2015/03/30 Python
python3 实现的人人影视网站自动签到
2016/06/19 Python
python3中set(集合)的语法总结分享
2017/03/24 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
北京泡泡网网络有限公司.net面试题
2012/07/17 面试题
项目经理的岗位职责
2013/11/23 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
上党课的心得体会
2014/09/02 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书