python - 从 CSV 数据获取延迟时间

标签 python numpy scipy scientific-computing

我正在测量并行端口上生成的信号的稳定性。

我们从示波器生成的 CSV 文件中导入了 numpy 数组。以下输出是显示问题的剥离变体:

import numpy as np
data = np.array([0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0])

t = np.array([0.    ,0.0005, 0.001 ,0.0015,
     0.002 ,0.0025, 0.003 ,0.0035,
     0.004 ,0.0045, 0.005 ,0.0055,
     0.006 ,0.0065, 0.007 ,0.0075,
     0.008 ])

绘制时看起来像这样。 enter image description here

我正在寻找最干净的方法来获取脉冲的持续时间作为列表中的值。

写完这篇文章后,我将尝试自己从头开始实现解决方案,我希望的是获得持久时间的首选方式,也许有一个我不知道的 numpy 函数?

最佳答案

假设data01的int数组:

1.)这定义了脉冲从最后一个0到最后一个1的持续时间:

import numpy as np

idx = t[np.abs(np.diff(data)) == 1]
lasting_times = idx[1::2] - idx[::2]

2.) 如果您更喜欢将持续时间定义为从第一个 1 到最后一个 1:

diff = np.diff(data)
lasting_times = t[diff == -1] - t[1:][diff == 1]

注意: 无论如何,您都必须处理数据的结尾,即这些解决方案假设 data0 开头和结尾...

关于python - 从 CSV 数据获取延迟时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13137610/

相关文章:

python - 为什么我不能在同一Python block 中同时捕获NameError和UnboundLocalError?

python - matplotlib 中有没有办法检查当前显示的轴区域中有哪些艺术家?

python - 如何获得比 numpy.dot 更快的代码用于矩阵乘法?

image-processing - 空间卷积与频率卷积图像的逆滤波器

python - 在 python 中使用 scipy 的 kmeans2 函数

python - 使用 NLTK 标记名词附加词或定语名词

python - 为什么这行代码会产生 TypeError : 'tuple' object cannot be interpreted as an integer

python - 如何在快速傅立叶变换中正确缩放频率轴?

python - 在 python 中平滑曲线且边界处没有错误?

python - 当 y 误差不对称时如何计算线性拟合斜率的误差