小编NGX*_*XII的帖子

Python中的峰值检测:scipy.signal.find_peaks_cwt函数如何工作?

我正在寻找某些光谱仪数据中的一些峰值,并试图使用该scipy.signal.find_peaks_cwt()功能来完成它.

但是,我发现的官方文档不太具有描述性,并且往往会在噪声中拾取错误的峰值,而有时不会在数据中拾取实际的峰值.

任何人都可以给我一个更好的解释这个函数中我可以使用的参数,包括"宽度",或者你能告诉我一些替代方案吗?

python signal-processing numpy scipy feature-detection

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

如何让PyQt4与PyCharm一起工作

所以我正在尝试使用PyQt4在我的Mac上的PyCharm中运行一个程序,但每当它试图运行时,它说

信息:无法导入后端"PyQt4":

没有名为PyQt4的模块

尝试使用PyCharm的Package Manager导入PyQt4会产生以下错误:

执行命令:

pip安装PyQt4

发生了错误:

0:428:执行错误:目录'/ Users/pkillam/Library/Caches/pip/http'或其父目录不归当前用户所有,并且已禁用缓存.请检查该目录的权限和所有者.如果用sudo执行pip,你可能需要sudo的-H标志.

建议的解决方案:

尝试从系统终端运行此命令.确保使用为'/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7'中的Python解释器安装的正确版本的'pip'.

这只是发生于某些包这点子不喜欢,特别是那些使用configure.py,而不是setup.py作为解释在这里.

尝试从控制台运行该命令会生成此错误:

$ pip安装PyQt4

收集PyQt4找不到满足PyQt4要求的版本(来自版本:)没有为PyQt4找到匹配的发行版

$

现在,使用自制软件声明安装软件包是成功的,但我仍然得到初始错误,即在自制软件安装它之后无法导入PyQt ..某处.

在过去的一天里,我一直在圈子里跑来跑去,有什么想法吗?

python compiler-errors pip pyqt pycharm

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

MatPlotLib中plt.draw()的更有效替代方案

我正在尝试使用MatPlotLib创建一个交互式GUI,用户最常注意的是,例如,更改滑块和GUI响应之间的延迟.

目前,我plt.draw()在每个事件结束时使用,它运行良好,除了它导致256ms函数259ms运行时的事实.

在研究替代方案时plt.draw(),我遇到了这个帖子:为什么Matplotlib的绘图速度如此之慢?,建议使用它fig.canvas.blit(ax1.bbox)作为重新加载图形的替代方案,而不是整个图形.
当我用这个,事件处理程序运行在3ms,但下面的事件在GUI的更新,而不是如同事件在缓冲区抓住了当前事件的结束:User input 1> pause> User input 2> GUI responds to input 1> pause> User input 3> GUI responds to input 2,使程序无法使用.

那么我有什么替代品?修复这些问题中的任何一个都可以让我运行一个非常快的GUI.如果需要,我会发布代码.

注1:使用时fig.canvas.blit(ax1.bbox),滑块,按钮等会立即更改,只有子图的行为如上所述.

注2:fig.canvas.draw_idle()在小部件示例中使用http://matplotlib.org/examples/widgets/slider_demo.html,并fig.canvas.draw()执行相同的操作plt.draw()

python performance user-interface interactive matplotlib

6
推荐指数
0
解决办法
2069
查看次数

删除列表中条目的最有效方法

我有一个巨大的4D数据集,在整个4个变量传播,x_list,y_list,z_list,和i_list.每个都是N个标量的列表,X,Y和Z代表点在空间中的位置,我代表强度.

通过将强度设置为0,我已经有一个功能可以选择并标记可忽略的点(强度太低的那些)进行删除.但是,当我在我的200万点设置上运行时,删除过程需要数小时.

目前,我使用.pop(index)命令删除数据点,因为它非常干净.这是代码:

counter = 0
i = 0
for entry in i_list
    if (i_list[i] == 0):
        x_list.pop(i)
        y_list.pop(i)
        z_list.pop(i)
        i_list.pop(i)
        counter += 1
        print (counter, "points removed")
    else
        i += 1
Run Code Online (Sandbox Code Playgroud)

我怎样才能更有效地做到这一点?

python iteration optimization performance

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