python list等分并从等分的子集中随机选取一个数


Posted in Python onNovember 16, 2020

有些时候我们需要从视频序列中均匀的随机采样,我们可以每隔x步进行一次采样,这就要求对一个list每隔x步进行一次截取,再从截取到的不同的子集中随机选取一个数就是我们平均采样的帧的idx。

import random

def split(a, n):
  k, m = divmod(len(a), n)
  return [a[i * k + min(i, m):(i + 1) * k + min(i + 1, m)] for i in list(range(n))]

list_split = split(list(range(15)), 3)
print(list_split)
tmp = [random.choice(i) for i in list_split]
print(tmp)

结果:

list_split====>
[[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]

tmp====>
[0, 6, 12]

 python list 平均 分割 等分

应用场景:根据线程数,分割任务列表;

####功能:将list对象N等分
def div_list(ls,n):
 if not isinstance(ls,list) or not isinstance(n,int):
 return []
 ls_len = len(ls)
 if n<=0 or 0==ls_len:
 return []
 if n > ls_len:
 return []
 elif n == ls_len:
 return [[i] for i in ls]
 else:
 j = ls_len/n
 k = ls_len%n
 ### j,j,j,...(前面有n-1个j),j+k
 #步长j,次数n-1
 ls_return = []
 for i in xrange(0,(n-1)*j,j):
  ls_return.append(ls[i:i+j])
 #算上末尾的j+k
 ls_return.append(ls[(n-1)*j:])
 return ls_return

if 0:
 print div_list(3,3)
 print div_list([3],'3')
 print div_list([3],-1)
 print div_list([],2)
 print div_list([3],2)
 print div_list([3,4,5,6],4)
 print div_list([3,4,5,6,7,8,9,10,11,12,13,14,15],3)

到此这篇关于python list等分并从等分的子集中随机选取一个数的文章就介绍到这了,更多相关python list等分内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现的石头剪子布代码分享
Aug 22 Python
Python浅拷贝与深拷贝用法实例
May 09 Python
python连接字符串的方法小结
Jul 13 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
python读取图片任意范围区域
Jan 23 Python
python文字转语音的实例代码分析
Nov 12 Python
基于python操作ES实例详解
Nov 16 Python
python实现手势识别的示例(入门)
Apr 15 Python
Pycharm自带Git实现版本管理的方法步骤
Sep 18 Python
pymysql模块使用简介与示例
Nov 17 Python
python中的random模块和相关函数详解
Apr 22 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 Python
Python大批量搜索引擎图像爬虫工具详解
Nov 16 #Python
详解Python中list[::-1]的几种用法
Nov 16 #Python
使用Pytorch搭建模型的步骤
Nov 16 #Python
Python图像读写方法对比
Nov 16 #Python
python3中编码获取网页的实例方法
Nov 16 #Python
Python3中小括号()、中括号[]、花括号{}的区别详解
Nov 15 #Python
Python根据URL地址下载文件并保存至对应目录的实现
Nov 15 #Python
You might like
菜鸟修复电子管记
2021/03/02 无线电
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
PHP parse_url 一个好用的函数
2009/10/03 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
php变量与字符串的增删改查操作示例
2020/05/07 PHP
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
2014/04/15 Javascript
jquery判断元素是否隐藏的多种方法
2014/05/06 Javascript
详解Javascript模板引擎mustache.js
2016/01/20 Javascript
angularjs表格ng-table使用备忘录
2016/03/09 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
element-ui 本地化使用教程详解
2019/10/28 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中的tuple元组详细介绍
2015/02/02 Python
基于Python实现的百度贴吧网络爬虫实例
2015/04/17 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
python爬取哈尔滨天气信息
2018/07/14 Python
python实现维吉尼亚算法
2019/03/20 Python
Python代码太长换行的实现
2019/07/05 Python
Python Django简单实现session登录注销过程详解
2019/08/06 Python
优秀的茶餐厅创业计划书
2014/01/03 职场文书
七一讲话心得体会
2014/09/05 职场文书
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers