我在鏡像中有一個看起來像字母「L」的圖形,或者像這樣:___/ 圖形的第一部分的斜率爲+/- 0(但它是不是零!),我想定義圖表開始彎曲(斜率> 0)的確切點。在圖中找到斜坡的起點
path = '/storage/.../01_python_in/'
test = np.loadtxt(path+'sample_data.txt', skiprows=0)
window = 10
slope_value = []
for j in range(len(test) - window):
slope, intercept, r_value, p_value, std_err = stats.linregress(test[j:j+window])
if slope > 0.2:
slope_value.append(slope)
print slope
else:
slope_value.append(0)
此工程確定,而我有兩個問題:
1)我的輸出是斜坡的陣列對於i + 10個元素。我怎樣才能知道第一個元素的索引是不是零,所以我可以讀出我的'測試'數據中的數據點(對不起,這是基本的,但我是一個python新手)? 2)我的實際數據看起來並不完美,因爲它包含一些噪聲,我的解決方案有兩個變量('窗口'和斜率> 0.2),我只能猜測(估計)。感謝您的幫助!
鑑於該曲線不是直線(甚至在窗口內它只是一個近似值),那麼在窗口或整個數據集中使用樣條擬合來獲得函數怎麼樣?對初學者來說這可能有點複雜,這取決於你對項目的需求。 http://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.interpolate.UnivariateSpline.html樣條對象有一個獲取衍生物的方法。 – amd
您是否考慮過對數據進行反向工作? –