试图将两个数组相加

时间:2017-03-26 20:30:08

标签: python arrays python-3.x numpy

我试图编写类似这样的代码:

link

其中xy是两个不同的numpy数组,j是数组的索引。我不知道数组的长度,因为它将由用户输入,我不能使用循环来编码。

我的主要问题是找到一种在索引之间移动的方法,因为我需要从

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

等等。

我很难过,但我会很感激任何线索。

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如上所述。

完整的答案正方形,总和和平方根。