没有合适的资源?快使用搜索试试~ 我知道了~
python list等分并从等分的子集中随机选取一个数
0 下载量 16 浏览量
2020-12-16
22:03:15
上传
评论 1
收藏 31KB PDF 举报
温馨提示
试读
1页
有些时候我们需要从视频序列中均匀的随机采样,我们可以每隔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 =
资源详情
资源评论
资源推荐
python list等分并从等分的子集中随机选取一个数等分并从等分的子集中随机选取一个数
有些时候我们需要从视频序列中均匀的随机采样,我们可以每隔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 从list中随机取值
的方法
weixin_38689976
- 粉丝: 6
- 资源: 924
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0