python - 如何从前一个整数中减去数组中的每个整数并求和
问题描述
我有一个大小为 (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
解决方案
使用 numpy:
(((a-np.roll(a,1))**2)[1:]).sum()
注意:[1:]
是必要的,因为roll
将元素重新插入到数组的开头。
推荐阅读
- sql - 从 SQL Server 到 Oracle 的转换
- r - R - 使用 dplyr、DT 和 Shiny 在地图中创建数据表
- bootstrap-4 - JHipster - 如何覆盖 Bootstrap 样式?
- php - PHPSpreadsheet并写入大量小数位
- python - 在 Python 中迭代 spark 数据框中的记录
- javascript - 使用条件将/替换运算符添加到字符串的开头
- sql - SQL - 在另一个表中复制列 // 在树中查找家庭关系
- java - 线程“主”java.lang.StringIndexOutOfBoundsException 中的异常:字符串索引超出范围:java.lang.String.charAt(String.java:658) 处的 0
- cmake - 如何在 CMake 中跨多个目标共享属性?
- android - 语言解析策略与官方文档不一致