首页 > 解决方案 > 如何从前一个整数中减去数组中的每个整数并求和

问题描述

我有一个大小为 (122,) 且由整数组成的 numpy 数组

我想使用以下公式:

在此处输入图像描述

我试着做

value=sum((I[:-1]-I[1:])**2))

此行本身不会产生错误,但每当我尝试在更大的公式中使用此值时,它都会给出无效的语法错误。

我想用这个值插入一个更大的公式

在此处输入图像描述

我想知道如何将我的数组插入这个公式例如,较大公式中第二项的代码,我写如下:

calc = np.linalg.norm((RR_intervals[:-1])-(RR_intervals[1:]))                                                                     

p=(n-1)*sqrt(2)
o=(1/p)*calc
t=o**2

如果我尝试将它与第一个术语结合起来,我会得到一个无效的语法错误

完整的解释器消息:runfile('/home/user_1/p01.py', wdir='/home/user_1') Traceback(最近一次调用最后):

文件“/home/user_1/.local/lib/python3.6/site-packages/IPython/core/interactiveshell.py”,第 3291 行,在 run_code exec(code_obj, self.user_global_ns, self.user_ns)

文件“”,第 1 行,在 runfile('/home/user_1/p01.py', wdir='/home/user_1')

文件“/usr/lib/python3/dist-packages/spyder/utils/site/sitecustomize.py”,第 705 行,在运行文件 execfile(文件名,命名空间)中

文件“/usr/lib/python3/dist-packages/spyder/utils/site/sitecustomize.py”,第 102 行,在 execfile exec(compile(f.read(), filename, 'exec'), namespace)

文件“/home/user_1/p01.py”,第 91 行分散 = (sqrt(mt)) ^ SyntaxError: invalid syntax

标签: pythonarraysnumpy

解决方案


使用 numpy:

(((a-np.roll(a,1))**2)[1:]).sum()

注意:[1:]是必要的,因为roll将元素重新插入到数组的开头。


推荐阅读