我寫了一個簡短的函數從我的列表中提供它比某些閾值(此處0.04)更高,除去數據之一,它的工作原理如下:刪除數據的兩個標準
def remove_noise(time_data, volt_data):
volt_clean = []
time_clean = []
for q in range(0, len(volt_data)):
if volt_data[q] >=0.04:
time_clean.append(time_data[q])
volt_clean.append(volt_data[q])
return volt_clean, time_clean
我想要做的是,而不是有一個閾值,檢查數據是否大於一個值或低於我傳遞給函數的另一個值。這是我到目前爲止已經寫的:
def remove_noise(time_data, volt_data, sma_max, sma_min):
volt_clean = []
time_clean = []
for q in range(0, len(volt_data)):
if volt_data[q] >=sma_max:
or volt_data[q] <=sma_min
time_clean.append(time_data[q])
volt_clean.append(volt_data[q])
return volt_clean, time_clean
我想保留那些>=sma_max
或<=sma_min
的的volt_data
所有元素,但我不知道寫的語法正確的方法在Python給我一個語法與我寫的第二個版本的錯誤。你會如何寫這or
聲明?我也試過用elif
而不是or
,但它仍然沒有工作。
'volt_data'是列表? – 2014-10-30 11:55:48
檢查結果應該是*之前*冒號:'如果volt_data [q]> = sma_max或volt_data [q] <= sma_min:' – jonrsharpe 2014-10-30 11:56:47
是的。它會更好地浮動嗎? – 2014-10-30 11:57:39