2017-03-26 96 views
2

我想這樣對代碼的東西:試圖總結兩個數組

link

其中xy是兩個不同的numpy陣列和j是數組的索引。我不知道數組的長度,因爲它將由用戶輸入,我不能使用循環來編碼。

我的主要問題是找到一種方法,指標之間移動,因爲我需要從

x[2]-x[1] ... x[3]-x[2] 

等去。

我很難過,但我會很感激任何線索。

+1

看看'numpy.diff'然後總結一下。 – Divakar

回答

2

一個numpy的集成電路解決方案將是:

np.square(np.diff(x)).sum() + np.square(np.diff(y)).sum() 

列表解析的方法是:

sum([(x[k]-x[k-1])**2+(y[k]-y[k-1])**2 for k in range(1,len(x))]) 

會給你你想要的結果,即使你的數據顯示爲列表。

0

x[2]-x[1] ... x[3]-x[2]可以概括爲:

x[[1,2,3,...]-x[[0,1,2,...]] 
x[1:]-x[:-1]  # ie. (1 to the end)-(0 to almost the end) 

numpy可以採取相同形狀的兩個陣列

在列表項之間的差,這將是

[i-j for i,j in zip(x[1:], x[:-1])] 

np.diff基本上這確實,a[slice1]-a[slice2],其中slices如上所述。

完整答案廣場,總數和squareroots。