相关疑难解决方法(0)

在numpy数组中查找满足条件的大量连续值

我将一些音频数据加载到numpy数组中,我希望通过查找静音部分来分割数据,即音频幅度在一段时间内低于某个阈值的部分.

一个非常简单的方法是这样的:

values = ''.join(("1" if (abs(x) < SILENCE_THRESHOLD) else "0" for x in samples))
pattern = re.compile('1{%d,}'%int(MIN_SILENCE))                                                                           
for match in pattern.finditer(values):
   # code goes here
Run Code Online (Sandbox Code Playgroud)

上面的代码找到至少MIN_SILENCE个连续元素小于SILENCE_THRESHOLD的部分.

现在,显然,上面的代码非常低效,并且滥用正则表达式.是否有其他方法更有效,但仍然会产生同样简单和短的代码?

python search numpy

20
推荐指数
3
解决办法
1万
查看次数

标签 统计

numpy ×1

python ×1

search ×1