av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

python實(shí)現(xiàn)信號(hào)時(shí)域統(tǒng)計(jì)特征提取代碼

瀏覽:7日期:2022-08-06 09:01:03

1.實(shí)驗(yàn)數(shù)據(jù)需求

為了對(duì)采集的壓力實(shí)驗(yàn)數(shù)據(jù)做特征工程,需要對(duì)信號(hào)進(jìn)行時(shí)域的統(tǒng)計(jì)特征提取,包含了均值、均方根、偏度、峭度、波形因子、波峰因子、脈沖因子、峭度因子等,現(xiàn)用python對(duì)其進(jìn)行實(shí)現(xiàn)。

2.python實(shí)現(xiàn)

其中的輸入?yún)?shù)含義:

① data:實(shí)驗(yàn)數(shù)據(jù)的DataFrame

② p1:所截取實(shí)驗(yàn)信號(hào)的起始采樣點(diǎn)位置

③ p2:所截取實(shí)驗(yàn)信號(hào)的終止采樣點(diǎn)位置

from pandas import Seriesimport mathpstf_list=[]def psfeatureTime(data,p1,p2): #均值 df_mean=data[p1:p2].mean() #方差 df_var=data[p1:p2].var() #標(biāo)準(zhǔn)差 df_std=data[p1:p2].std() #均方根 df_rms=math.sqrt(pow(df_mean,2) + pow(df_std,2)) #偏度 df_skew=data[p1:p2].skew() #峭度 df_kurt=data[p1:p2].kurt() sum=0 for i in range(p1,p2): sum+=math.sqrt(abs(data[i])) #波形因子 df_boxing=df_rms / (abs(data[p1:p2]).mean()) #峰值因子 df_fengzhi=(max(data[p1:p2])) / df_rms #脈沖因子 df_maichong=(max(data[p1:p2])) / (abs(data[p1:p2]).mean()) #裕度因子 df_yudu=(max(data[p1:p2])) / pow((sum/(p2-p1)),2) featuretime_list = [df_mean,df_rms,df_skew,df_kurt,df_boxing,df_fengzhi,df_maichong,df_yudu] return featuretime_list

3.結(jié)果與說明

python實(shí)現(xiàn)信號(hào)時(shí)域統(tǒng)計(jì)特征提取代碼

補(bǔ)充拓展:python數(shù)據(jù)結(jié)構(gòu)與算法--回溯算法詳解

回溯算法:一種優(yōu)先搜索算法(試探法);按優(yōu)條件向前搜索,以達(dá)目標(biāo);當(dāng)試探到某步,發(fā)現(xiàn)原來選擇并不好(走不通),就退回重新選擇。

回溯算法的一般步驟:1:定義問題的解空間(搜索中動(dòng)態(tài)生成);2:確定易搜索的解空間結(jié)構(gòu)(一般為樹形結(jié)構(gòu)或圖);3:以深度優(yōu)先的方式搜索解空間,搜索中用剪枝函數(shù)避免無效搜索。

剪枝函數(shù):1:用約束函數(shù)在擴(kuò)展節(jié)點(diǎn)處減去不滿足約束條件的子樹;2:用限界函數(shù)減去不能得到最優(yōu)解的子樹。

回溯法:實(shí)戰(zhàn)

1:電話號(hào)碼的字母組合

方法:回溯(適用于組合問題)

class Solution: def letterCombination(self,digits): phone={’2’: [’a’, ’b’, ’c’], ’3’: [’d’, ’e’, ’f’], ’4’: [’g’, ’h’, ’i’], ’5’: [’j’, ’k’, ’l’], ’6’: [’m’, ’n’, ’o’], ’7’: [’p’, ’q’, ’r’, ’s’], ’8’: [’t’, ’u’, ’v’], ’9’: [’w’, ’x’, ’y’, ’z’]} res=[]#存放組合結(jié)果 def backtrack(combination,next_digits):#回溯函數(shù) #combination目前已經(jīng)產(chǎn)生的組合,next_digits:輸入的下一個(gè)字符 if len(next_digits)==0: #遞歸出口 res.append(combination) else: for i in phone[next_digits[0]]: backtrack(combination+i,next_digits[1:]) #遞歸實(shí)現(xiàn)回溯 if digits: backtrack(’’,digits) #初始化 return res

2:全排列

輸入: [1,2,3]

輸出:

[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

class Solution: def permute(self,nums): res=[] #存放組合結(jié)果 size=len(nums) def backtrack(combination,nums): #combination目前已經(jīng)產(chǎn)生的組合,nums為剩下的數(shù)組 #遞歸出口 #遞歸的結(jié)束一定 要有return if len(combination)==size: res.append(combination) return #注意 for i in range(len(nums)): backtrack(combination+[nums[i]],nums[:i]+nums[i+1:]) #遞歸回溯 backtrack([],nums) return res if __name__==’__main__’: nums = [1,2,3] solution=Solution() print(solution.permute(nums))

3:數(shù)字組合

輸入: candidates = [2,3,6,7], target = 7,

所求解集為:

[[7],[2,2,3]]

class Solution: def combinationArray(self,candidates,target): candidates.sort() res=[] #存放組合結(jié)果 size=len(candidates) def backtrack(combination,cur_sum,j): #combination目前已經(jīng)產(chǎn)生的組合,cur_sum當(dāng)前計(jì)算和,j用于控制求和的查找范圍起點(diǎn) #遞歸出口 if cur_sum>target: return if cur_sum==target: res.append(combination) for i in range(j,size): #j避免重復(fù) if cur_sum+candidates[i]>target: #約束函數(shù)(剪) break j=i backtrack(combination+[candidates[i]],cur_sum+candidates[i],j)#遞歸回溯 backtrack([],0,0) return resif __name__==’__main__’: candidates = [2,3,6,7] target = 7 solution=Solution() print(solution.combinationArray(candidates,target))

4:

N皇后問題

class Solution: def solveNqueen(self,n): res=[] #存放結(jié)果組合,對(duì)于N皇后問題,這里存放的是其放在每一行對(duì)應(yīng)的列下標(biāo) def backtrack(combination): if len(combination)==n: res.append(combination) return for j in range(n): if combination: #排除當(dāng)前行,列和對(duì)應(yīng)的兩個(gè)對(duì)角線。 if j not in combination and j!=combination[-1]+1 and j!=combination[-1]-1:#約束條件 backtrack(combination+[j]) #遞歸回溯 else: continue else: backtrack(combination+[j]) backtrack([]) #回溯初始化 #轉(zhuǎn)化為需要的格式 output=[['.' * k + 'Q' + '.' * (n - k - 1) for k in i] for i in res] #列表生成器 return output if __name__==’__main__’: n=4 solution=Solution() print(solution.solveNqueen(n))

5:子集

[1,2,3]的子集[[], [1], [1, 2], [1, 2, 3], [1, 3], [2], [2, 3], [3]]

class Solution(object): def subsets(self, nums): ''' :type nums: List[int] :rtype: List[List[int]] ''' res=[]#存放組合結(jié)果 size=len(nums) def backtrack(combination,nums): #combination目前已經(jīng)產(chǎn)生的組合,nums為剩下的數(shù)組 if len(combination)<=size: res.append(combination) #遞歸出口 #遞歸的結(jié)束一定 要有return if len(combination)==size: return for i in range(len(nums)): backtrack(combination+[nums[i]],nums[i+1:]) #遞歸回溯 backtrack([],nums) return res if __name__==’__main__’: nums=[1,2,3] solution=Solution() print(solution.subsets(nums))

6:

字母大小寫的全排列

給定一個(gè)字符串S,通過將字符串S中的每個(gè)字母轉(zhuǎn)變大小寫,我們可以獲得一個(gè)新的字符串。返回所有可能得到的字符串集合。

輸入: S = 'a1b2'

輸出: ['a1b2', 'a1B2', 'A1b2', 'A1B2']

class Solution: def letterpermute(self,S): res=[] size=len(S) def backtrack(combination,S): if len(combination)==size: res.append(’’.join(combination)) return for i in range(len(S)): if 'a'<=S[i]<= 'z' or 'A'<=S[i]<= 'Z': for j in range(2): if j==0: backtrack(combination+[S[i].lower()],S[i+1:]) if j==1: backtrack(combination+[S[i].upper()],S[i+1:]) else: backtrack(combination+[S[i]],S[i+1:]) backtrack([],S) return res if __name__==’__main__’: S=[i for i in '1B2'] solution=Solution() print(solution.letterpermute(S))

7:生成括號(hào)

括號(hào)生成:給出 n 代表生成括號(hào)的對(duì)數(shù),請(qǐng)你寫出一個(gè)函數(shù),使其能夠生成所有可能的并且有效的括號(hào)組合。

例如,給出 n = 3,生成結(jié)果為:

['((()))','(()())','(())()','()(())','()()()']

class Solution: def generateParenthesis(self,n): res=[] #存放組合結(jié)果 def backtrack(combination,left,right): #combination目前已經(jīng)產(chǎn)生的組合 if len(combination)==2*n: #遞歸出口 res.append(combination) #對(duì)于有效的括號(hào),左邊先出 if left<n: backtrack(combination+’(’,left+1,right)#遞歸實(shí)現(xiàn)回溯 if right<left: backtrack(combination+’)’,left,right+1)#遞歸實(shí)現(xiàn)回溯 backtrack(’’,0,0) #初始化 return res if __name__==’__main__’: n=3 solution=Solution() print(solution.generateParenthesis(n))

以上這篇python實(shí)現(xiàn)信號(hào)時(shí)域統(tǒng)計(jì)特征提取代碼就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 亚洲一区国产 | 欧美高清一区 | 久久久久国产 | 日韩欧美视频 | 中文字幕一区二区三区在线观看 | 亚洲国产第一页 | 国产乱码精品一区二区三区忘忧草 | 精品综合网 | 免费超碰| 人成在线| 毛片一区 | 免费一级毛片 | 偷拍自拍在线观看 | 久久久久国产 | 日韩精品无码一区二区三区 | 羞羞视频网站在线观看 | 国产精品久久视频 | www.黄网 | 日韩精品免费在线 | 午夜精品一区二区三区在线视 | 56pao在线| 四虎影院新网址 | 中文字幕一二三区 | 国产无人区一区二区三区 | 成人在线观看网站 | av网站免费看 | 成人av资源在线 | 午夜日韩视频 | 欧美一级片在线看 | 国产伦精品一区二区三区照片91 | 国产高清在线精品 | av中文字幕在线观看 | 国产精品亚洲一区二区三区在线 | 亚洲网站在线播放 | 日韩二区三区 | 国产一区二区三区四区五区加勒比 | 亚洲精品视频一区 | 精品视频国产 | 国产免费av网 | 久久av一区 | 久久爱综合 |