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入门篇之正则表达式
Oct 20 Python
分析Python编程时利用wxPython来支持多线程的方法
Apr 07 Python
Python线程的两种编程方式
Apr 14 Python
python利用百度AI实现文字识别功能
Nov 27 Python
对python读写文件去重、RE、set的使用详解
Dec 11 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
Apr 18 Python
python中append实例用法总结
Jul 30 Python
关于pytorch处理类别不平衡的问题
Dec 31 Python
python动态文本进度条的实例代码
Jan 22 Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 Python
python 获取谷歌浏览器保存的密码
Jan 06 Python
如何在Python项目中引入日志
May 31 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
PHP安装问题
2006/10/09 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
php实现邮件发送并带有附件
2014/01/24 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
checkbox使用示例
2013/08/23 Javascript
快速查找数组中的某个元素并返回下标示例
2013/09/03 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
Python生成随机密码的方法
2017/06/16 Python
python实战串口助手_解决8串口多个发送的问题
2019/06/12 Python
python实现学生成绩测评系统
2020/06/22 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
80年代复古T恤:TruffleShuffle
2018/07/02 全球购物
文明工地标语
2014/06/16 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
2014年除四害工作总结
2014/12/06 职场文书
仓管员岗位职责
2015/02/03 职场文书
搬迁通知
2015/04/20 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书
详解RedisTemplate下Redis分布式锁引发的系列问题
2021/04/27 Redis
pytorch Dropout过拟合的操作
2021/05/27 Python
MySQL窗口函数的具体使用
2021/11/17 MySQL