我可以通过查找一阶导数或其他东西的零交叉来自己编写一些东西,但它似乎是一个通用的函数,可以包含在标准库中.谁知道一个?
我的特定应用是2D阵列,但通常它将用于在FFT等中查找峰值.
具体而言,在这些类型的问题中,存在多个强峰,然后是许多较小的"峰值",这些"峰值"仅由应该忽略的噪声引起.这只是例子; 不是我的实际数据:
一维峰值:
二维峰值:
峰值寻找算法将找到这些峰值的位置(不仅仅是它们的值),理想情况下会找到真正的样本间峰值,而不仅仅是具有最大值的索引,可能使用二次插值等.
通常,您只关心一些强峰,因此它们要么被选中,要么是因为它们高于某个阈值,要么是因为它们是有序列表的前n个峰值,按振幅排列.
正如我所说,我知道如何自己写这样的东西.我只是问是否有一个已知的功能或包已知可以正常工作.
更新:
我翻译了一个MATLAB脚本,它适用于1-D案例,但可能更好.
更新更新:
sixtenbe 为1-D案例创造了更好的版本.
在对音频或图像阵列进行一些处理之后,需要在一个范围内对其进行标准化,然后才能将其写回文件.这可以这样做:
# Normalize audio channels to between -1.0 and +1.0
audio[:,0] = audio[:,0]/abs(audio[:,0]).max()
audio[:,1] = audio[:,1]/abs(audio[:,1]).max()
# Normalize image to between 0 and 255
image = image/(image.max()/255.0)
Run Code Online (Sandbox Code Playgroud)
是否有一个不那么详细,方便的功能方法来做到这一点?matplotlib.colors.Normalize()
似乎没有相关性.
我在Windows 7中从Python(x,y)2.7.2.3升级到2.7.6.0(很高兴看到我最终可以function_name?
再次在Object Inspector中输入并查看docstring)但是现在绘图不起作用了以前.
以前(Spyder 2.1.9,IPython 0.10.2,matplotlib 1.2.1),例如,当我绘制这个脚本时,它会在交互式窗口中并排绘制子图:
现在(Spyder 2.2.5,IPython 1.2.0,Matplotlib 1.3.1)当我尝试绘制事物时,它将子图作为微小的内联PNG,这是IPython中的一个变化:
所以我进入选项并发现了这个:
这似乎是说我可以将旧的交互式图重新打开,并且4个子图并排显示,但是当我切换到"自动",并尝试绘制某些内容时,它什么也没做.根本没有阴谋.
如果我关掉这个下拉Qt的,或取消选中"激活的支持",只绘出了第一次要情节,或它的一部分,然后停止:
如何在一个可以与之交互的图中获得4个并排子图的旧行为?
csv.DictWriter
可以将字典列表写入CSV文件.csv
模块无法处理将unicode字符串转换为UTF8.该csv
模块文档具有的一切转换为UTF-8的例子:
def utf_8_encoder(unicode_csv_data):
for line in unicode_csv_data:
yield line.encode('utf-8')
Run Code Online (Sandbox Code Playgroud)它也有一个UnicodeWriter
类.
但是......我该如何DictWriter
使用这些?难道他们不必在它的中间注入自己,以便在将它们写入文件之前捕获反汇编的字典并对它们进行编码吗?我不明白.
是否有任何通用形式的短时傅里叶变换,其中相应的逆变换内置于SciPy或NumPy或其他任何东西?
specgram
在matplotlib中有pyplot 函数,它调用ax.specgram()
哪些调用mlab.specgram()
调用_spectral_helper()
:
Run Code Online (Sandbox Code Playgroud)#The checks for if y is x are so that we can use the same function to #implement the core of psd(), csd(), and spectrogram() without doing #extra calculations. We return the unaveraged Pxy, freqs, and t.
但
这是一个辅助函数,它实现了204#psd,csd和谱图之间的通用性.它 并不意味着在mlab之外使用
不过,我不确定这是否可以用来做STFT和ISTFT.还有什么,或者我应该翻译这些MATLAB函数吗?
我知道如何编写自己的临时实现; 我只是在寻找功能齐全的东西,它可以处理不同的窗口函数(但是有一个合理的默认值),完全可以与COLA windows(istft(stft(x))==x
)完全颠倒,由多人测试,没有一个一个错误,处理结束和零填充,实际输入的快速RFFT实现等.
如果网页上有<div class="class1">
和<p class="class1">
,然后soup.findAll(True, 'class1')
就会发现他们两个.
<p class="class1 class2">
但是,如果它有,它将无法找到.如何找到具有某个类的所有对象,无论它们是否还有其他类?
我想用最简单的方法在Python脚本中弹出简单的对话框.理想情况下,解决方案将:
要弹出一个简单的标准对话框,只需要很少的代码.基本上你只是说"用这个文本弹出标准对话框",或者"弹出一个带有问题x的对话框并将响应反馈到变量y".
这适用于在命令行上运行的简单脚本.我不想知道GUI框架或者必须设置代码"启动GUI线程,注册事件处理程序,配置一些窗口属性,运行循环"等等.我不想设置窗户或之后关闭窗户.我把文本放在窗口和/或按钮和/或复选框中,它返回用户点击的内容.其他一切都应该自动处理.例如:
message_box('File conversion complete')
Run Code Online (Sandbox Code Playgroud)
对于带有"确定"按钮的标准对话框,或
balloon_tip('File conversion complete')
Run Code Online (Sandbox Code Playgroud)
对于系统托盘弹出气球,或
format = button_box('Which file format do you want?', 'JPG', 'PNG')
Run Code Online (Sandbox Code Playgroud)
然后他们按下两个按钮中的一个,然后format
等于'JPG'
,或
response = text_query('What would you like to name the file?')
Run Code Online (Sandbox Code Playgroud)
然后在他们输入框并输入Ok后,response
现在等于'bananas.txt'
.无需其他代码.没有丑陋的命令行提示穷人.
我列出了Zenity和EasyGUI作为示例答案,因为它们与我想要的相似,但并不完美.
[ 以前在Python论坛上问过 ]
我想在后台打开一个进程并与之交互,但这个进程在Linux和Windows中都应该是不可见的.在Windows中,您必须使用STARTUPINFO执行某些操作,而这在Linux中无效:
ValueError:仅在Windows平台上支持startupinfo
有没有比为每个操作系统创建单独的Popen命令更简单的方法?
if os.name == 'nt':
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
proc = subprocess.Popen(command, startupinfo=startupinfo)
if os.name == 'posix':
proc = subprocess.Popen(command)
Run Code Online (Sandbox Code Playgroud) 我有一个.asp应用程序,其中图像文件(.PDF)存储在目录中(由复印机/扫描仪提供).创建的文件名存储在数据库表中.从网页启动查询时,会创建指向该文件的链接.单击时,应显示图像.此功能在Internet Explorer中100%有效.在Firefox中没有这样的运气(我有一些Firefox用户).创建的超链接如下所示file://Server/Scanner/XYZ.pdf
Firefox帮助建议原因是这样的:
本地或网络页面的链接不起作用.作为安全预防措施,Firefox禁止Internet上的站点链接到存储在本地计算环境中的文件.这些文件可能包括计算机上的文件,映射的网络驱动器和UNC网络路径
没有针对变通方法的建议似乎有效(或者我不了解创建图像显示的步骤)任何建议?
在PHP中我可以命名我的数组标记,以便我可能有类似的东西:
$shows = Array(0 => Array('id' => 1, 'name' => 'Sesame Street'),
1 => Array('id' => 2, 'name' => 'Dora The Explorer'));
Run Code Online (Sandbox Code Playgroud)
这在Python中可行吗?