我试图编写类似这样的代码:
其中x
和y
是两个不同的numpy
数组,j
是数组的索引。我不知道数组的长度,因为它将由用户输入,我不能使用循环来编码。
我的主要问题是找到一种在索引之间移动的方法,因为我需要从
开始x[2]-x[1] ... x[3]-x[2]
等等。
我很难过,但我会很感激任何线索。
答案 0 :(得分:2)
numpy-ic解决方案将是:
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))])
即使您的数据显示为列表,也会为您提供所需的结果。
答案 1 :(得分: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
如上所述。
完整的答案正方形,总和和平方根。