小编Ric*_*son的帖子

在Python中创建严格增加列表的最快方法

我想找出在Python中实现以下目标的最有效方法:

假设我们有两个列表a,b它们长度相等,最多包含1e7个元素.但是,为了便于说明,我们可能会考虑以下因素:

a = [2, 1, 2, 3, 4, 5, 4, 6, 5, 7, 8, 9, 8,10,11]
b = [1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15]
Run Code Online (Sandbox Code Playgroud)

目标是创建严格单调的列表a_new,a而仅使用具有相同值的样本点的第一个样本点.a还应删除必须删除的相同索引,以便b最终结果为:

a_new = [2, 3, 4, 5, 6, 7, 8, 9,10,11]
b_new = [1, 4, 5, 6, 8,10,11,12,14,15]
Run Code Online (Sandbox Code Playgroud)

当然,这可以使用计算上昂贵的for循环来完成,然而由于大量数据,这不适合.

任何建议都非常感谢.

python numpy scipy python-2.7 pandas

16
推荐指数
4
解决办法
2189
查看次数

使用互相关查找两个信号的时移

我有两个相互关联的信号,它们同时被两个不同的测量设备捕获。由于这两个测量不是时间同步的,因此我想计算它们之间的时间延迟很小。此外,我需要知道哪个信号是领先的。

可以假设如下:

  • 没有或只有非常少的噪音
  • 算法的速度不是问题,只有准确性和鲁棒性
  • 以高采样率 (>10 kHz) 捕获信号几秒钟
  • 预期时间延迟 < 0.5s

我认为为此目的使用互相关。非常感谢如何在 Python 中实现它的任何建议。

请让我知道我是否应该提供更多信息以找到最合适的算法。

python signal-processing lag python-2.7 cross-correlation

7
推荐指数
2
解决办法
2万
查看次数

Tkinter:持续时间不确定的 ProgressBar

我想在 Tkinter 中实现一个满足以下要求的进度条:

  • 进度条是主窗口中的唯一元素
  • 它可以通过启动命令启动,无需按任何按钮
  • 它能够等待一个未知持续时间的任务完成
  • 只要任务没有完成,进度条的指示器就会一直移动
  • 它可以通过停止命令关闭,无需按下任何停止栏

到目前为止,我有以下代码:

import Tkinter
import ttk
import time

def task(root):
    root.mainloop()

root = Tkinter.Tk()
ft = ttk.Frame()
ft.pack(expand=True, fill=Tkinter.BOTH, side=Tkinter.TOP)
pb_hD = ttk.Progressbar(ft, orient='horizontal', mode='indeterminate')
pb_hD.pack(expand=True, fill=Tkinter.BOTH, side=Tkinter.TOP)
pb_hD.start(50)
root.after(0,task(root))
time.sleep(5) # to be replaced by process of unknown duration
root.destroy()
Run Code Online (Sandbox Code Playgroud)

在这里,问题是5s结束后进度条没有停止。

有人可以帮我找出错误吗?

python tkinter ttk python-2.7 progress-bar

5
推荐指数
1
解决办法
2万
查看次数

大多数pythonic方式绘制多个信号

我想将一个或多个信号绘制成一个图.

对于每个信号,可以指定单独的颜色,线宽和线条样式.如果必须绘制多个信号,则还应提供图例.

到目前为止,我使用以下代码,允许我绘制最多三个信号.

import matplotlib
fig = matplotlib.figure.Figure(figsize=(8,6))
subplot = fig.add_axes([0.1, 0.2, 0.8, 0.75])
Signal2, Signal3, legend, t = None, None, None, None
Signal1, = subplot.plot(xDataSignal1, yDataSignal1, color=LineColor[0], linewidth=LineWidth[0],linestyle=LineStyle[0])
if (yDataSignal2 != [] and yDataSignal3 != []):
    Signal2, = subplot.plot(xDataSignal2, yDataSignal2, color=LineColor[1], linewidth=LineWidth[1],linestyle=LineStyle[1])
    Signal3, = subplot.plot(xDataSignal3, yDataSignal3, color=LineColor[2], linewidth=LineWidth[2],linestyle=LineStyle[2])
    legend = subplot.legend([Signal1, Signal2, Signal3], [yLabel[0], yLabel[1], yLabel[2]],LegendPosition,labelspacing=0.1, borderpad=0.1)
    legend.get_frame().set_linewidth(0.5)
    for t in legend.get_texts():
        t.set_fontsize(10)
elif (yDataSignal2 != []):
    Signal2, = subplot.plot(xDataSignal2, yDataSignal2, color=LineColor[1], linewidth=LineWidth[1],linestyle=LineStyle[1])
    legend = subplot.legend([Signal1, Signal2], [yLabel[0], yLabel[1]], …
Run Code Online (Sandbox Code Playgroud)

python matplotlib python-2.7

4
推荐指数
1
解决办法
1123
查看次数

将大量 Python 列表数据导出到文本文件的最快方法

我正在寻找将最多十个 Python 列表的元素导出[x1, x2, x3, ... xn], [y1, y2, y3, ... yn], [z1, z2, z3, ... zn], ...到结构如下的文本文件的最高效方法:

x1 y1 z1  .  .  . 
x2 y2 z2  .  .  .
x3 y3 z3  .  .  .
 .  .  .  .  .  .
 .  .  .  .  .  .
 .  .  .  .  .  .
xn yn zn  .  .  .
Run Code Online (Sandbox Code Playgroud)

具有挑战性的是每个列表可能最多有 100 万个元素(仅限浮点或整数)

任何建议都将受到高度赞赏。

python csv bigdata python-2.7

1
推荐指数
1
解决办法
1798
查看次数