非常简单的信号处理

时间:2013-10-25 14:38:40

标签: python numpy

我正在处理一个非常简单的信号:

import numpy as np

series = np.random.random(20)
blind = np.zeros(series.size)

for ii in np.arange(blind.size-1):
    if series[ii+1]-series[ii]>0.4:
        blind[ii] = 1

然而,这看起来根本不是Numpythonic!如何重写代码以使用Numpy-way?

2 个答案:

答案 0 :(得分:5)

你的意思是什么? np.diff(系列)> 0.4

答案 1 :(得分:3)

blind[series[1:] - series[:-1] > 0.4] = 1

或遵循tk

的建议
blind[np.diff(series) > 0.4] = 1

关键是你使用boolean/logical indexing(即用布尔数组索引)而不是循环和if语句。