使用 pandas.shift() 根据 scipy.signal.correlate 对齐数据集

2023-11-23

我的数据集如下所示:data0, data1, data2(类似于时间与电压数据)

如果我使用以下代码加载并绘制数据集:

import pandas as pd
import numpy as np
from scipy import signal
from matplotlib import pylab as plt

data0 = pd.read_csv('data0.csv')
data1 = pd.read_csv('data1.csv')
data2 = pd.read_csv('data2.csv')

plt.plot(data0.x, data0.y, data1.x, data1.y, data2.x, data2.y)

我得到类似的东西:

plotting all three datasets

现在我尝试将 data0 与 data1 关联起来:

shft01 = np.argmax(signal.correlate(data0.y, data1.y)) - len(data1.y)
print shft01
plt.figure()
plt.plot(data0.x, data0.y,
         data1.x.shift(-shft01), data1.y)
fig = plt.gcf()

与输出:

-99

and

shifted version of data1

其效果正如预期的那样!但如果我用 data2 尝试同样的事情,我会得到一个如下所示的图:

shifted version of data2

正向转变410。我想我只是不明白如何pd.shift()有效,但我希望我可以使用pd.shift()对齐我的数据集。据我了解,返回correlate()告诉我我的数据集有多远,所以我应该能够使用移位来重叠它们。


panda.shift()不是沿 x 轴移动曲线的正确方法。您应该调整点的 X 值:

plt.plot(data0.x, data0.y)
for target in [data1, data2]:
    dx = np.mean(np.diff(data0.x.values))
    shift = (np.argmax(signal.correlate(data0.y, target.y)) - len(target.y)) * dx
    plt.plot(target.x + shift, target.y)

这是输出:

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 pandas.shift() 根据 scipy.signal.correlate 对齐数据集 的相关文章

随机推荐

  • 如何使用mysql将视频存储在数据库中?

    我尝试使用 MySQL 将视频文件存储到数据库中 但我不知道如何存储 视频文件存入数据库 我尝试执行以下查询 但没有成功 CREATE TABLE GAME GAME ID INTEGER NOT NULL PRIMARY KEY GAME
  • Javascript:获取当前页面当前源

    我有 HTML 我需要获取该 html 的页面源 document documentElement outerHTML or ajax async true type GET cache false url window location
  • 以编程方式设置控制台窗口大小和位置

    我想在桌面上打开多个控制台程序 这是我每次都必须做的事情 1 右键单击桌面 gt 屏幕分辨率 gt 检测 4个显示器 2 打开 16 个不同的控制台程序 每个屏幕 4 个 3 单击所有窗口以获得正确的 Z 顺序 3 右键单击任务栏 gt 显
  • 获取访问您网站的每个用户的 IP 地址和位置

    如何通过 Asp Net 获取您网站的每个网站访问者的 IP 地址和位置 Thanks 要获取用户的IP 请使用 Request UserHostAddress 您可以使用此网络服务来获取他们的地理位置 http iplocationtoo
  • 返回字符串行号的查找命令

    我有一堆文件组织成目录 所有这些都是文本文件 c c 我正在尝试理解这段代码 我需要查看许多变量的声明 如何使用 find 命令在 ubuntu linux 中使用 Find 命令获取确切位置 带行号的文件名 或者有没有任何图形工具可以做同
  • 最终减少的策略

    我正在尝试实现一个 OpenCL 版本来减少浮点数组 为了实现这一目标 我采用了在网上找到的以下代码片段 kernel void sumGPU global const double input global double partialS
  • 在 SSH.NET 中检查 SFTP/SSH 指纹

    我目前正在创建一个 SSIS 包 我需要连接到安全服务器来复制一些文件 并且我想通过服务器发送的公钥指纹来验证连接 我对这方面不太熟悉 我是否总是期望连接时会发送指纹 该软件包之前使用了WinSCP 并且指纹以以下格式烘焙到代码中 ssh
  • 尝试延迟一定时间后生成敌人的特定功能

    我正在使用 pygame 制作一个鼹鼠射击游戏 我希望我的鼹鼠每 1 秒就在随机位置生成一次 我尝试过使用 time sleep 1 0 但这会延迟我的整个代码 因此游戏由于响应延迟而无法正常运行 我正在使用鼠标移动目标 由于 time s
  • 在java中动态加载一个具有不同包名的类

    是否可以在 Java 中加载类并 伪造 类的包名称 规范名称 我尝试这样做 这是显而易见的方法 但我在ClassDefNotFoundException 我这样做的原因是我试图加载一个在默认包中编写的 API 以便我可以直接使用它而不使用反
  • 如何在客户端和服务器之间共享 gRPC 原型数据

    我刚刚开始学习 gRPC 遇到了一个问题原始文件 据我了解 这些文件定义了传入传出数据的模型 在服务器端一切正常 服务器编译并运行良好 但客户端无法识别来自服务器的 proto 文件 使用 Visual Studio 2019 建议添加整个
  • 将命令行参数传递给 R CMD BATCH

    我一直在使用R CMD BATCH my script R从终端执行R脚本 我现在想将参数传递给命令 但在使其正常工作时遇到一些问题 如果我做R CMD BATCH my script R blabla then blabla成为输出文件
  • iPhone - 导航栏自定义背景[重复]

    这个问题在这里已经有答案了 可能的重复 如何在iPhone导航栏上添加背景图片 我正在寻找一种拥有自定义导航栏的方法 并且需要拥有自定义导航栏背景来实现此目的 我正在四处寻找如何做到这一点 但找不到解决方案 如果有人有解决方案 非常感谢帮助
  • 使用 phpunit.xml、.env.dusk.local 和 sqlite 内存数据库设置 Laravel 5.4 和 Dusk

    标题说明了一切 我想知道如何使用内存 SQLite 数据库使用 Dusk 正确设置新的 Laravel 5 4 项目 我可以运行测试 但收到错误 没有这样的表 用户 我创建了一个新的 Laravel 5 4 项目 安装 Dusk 并添加服务
  • 父子组件按照什么顺序渲染?

    如果我有两个组件 父组件和子组件 如下所示 1 家长 倒计时 var Countdown React createClass getInitialState function return count 0 handleSetCountdow
  • 查找多重集的所有子集

    假设我有一个袋子 里面有 6 个球 3 个白色和 3 个黑色 我想找到给定长度的所有可能的子集 而不考虑顺序 在上面的例子中 我只能从袋子里取出 3 个球的 4 种组合 2 个白色和 1 个黑色 2 黑 1 白 3 white 3 blac
  • Excel 工作表使用 C# 选择第一行

    我想使用互操作对象选择 Excel 工作表第一行 我能怎么做 xlWorkBook xlApp Workbooks Open directory 0 true 5 true Microsoft Office Interop Excel Xl
  • 在 Mac OS High Sierra 上加载 rJava

    我正在尝试安装 rJava 包来运行 XLConnect 包 这是我的系统详细信息 R工作室 版本1 0 153 Mac 操作系统 High Sierra 版本 10 13 1 17B1003 R版本 3 4 2 jdk 9 0 1 但是
  • 类型联合不检查多余的属性[重复]

    这个问题在这里已经有答案了 让我们想象一个有一个对象 它要么有属性A and B or C e g const temp A 1 B 2 or const temp C 3 直觉上我认为这种类型是 type T A number B num
  • “=!”是什么意思?运营商做什么? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 我不小心输入了 代替 这在系统中造成了一个巨大的错误 但在一段时间内未被发现 从那以后我已经修复了它 但我很好奇是什么 does 我有这样的事情 void foo int p
  • 使用 pandas.shift() 根据 scipy.signal.correlate 对齐数据集

    我的数据集如下所示 data0 data1 data2 类似于时间与电压数据 如果我使用以下代码加载并绘制数据集 import pandas as pd import numpy as np from scipy import signal