python list等分并從等分的子集中隨機選取一個數(shù)
有些時候我們需要從視頻序列中均勻的隨機采樣,我們可以每隔x步進行一次采樣,這就要求對一個list每隔x步進行一次截取,再從截取到的不同的子集中隨機選取一個數(shù)就是我們平均采樣的幀的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)
結(jié)果:
list_split====>
[[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]tmp====>
[0, 6, 12]
python list 平均 分割 等分
應(yīng)用場景:根據(jù)線程數(shù),分割任務(wù)列表;
####功能:將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,次數(shù)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)
到此這篇關(guān)于python list等分并從等分的子集中隨機選取一個數(shù)的文章就介紹到這了,更多相關(guān)python list等分內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 實現(xiàn)保存最新的三份文件,其余的都刪掉
今天小編就為大家分享一篇python 實現(xiàn)保存最新的三份文件,其余的都刪掉,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Python selenium如何打包靜態(tài)網(wǎng)頁并下載
這篇文章主要介紹了Python selenium如何打包靜態(tài)網(wǎng)頁并下載,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08
python實戰(zhàn)項目scrapy管道學(xué)習(xí)爬取在行高手?jǐn)?shù)據(jù)
這篇文章主要為介紹了python實戰(zhàn)項目scrapy管道學(xué)習(xí)拿在行練手爬蟲項目,爬取在行高手?jǐn)?shù)據(jù),本篇博客的重點為scrapy管道pipelines的應(yīng)用,學(xué)習(xí)時請重點關(guān)注2021-11-11
python實現(xiàn)傅里葉級數(shù)展開的實現(xiàn)
這篇文章主要介紹了python實現(xiàn)傅里葉級數(shù)展開的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07

