1

我正在处理一个非常简单的信号,如下所示:

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 方式?

4

2 回答 2

5

你的意思是类似的东西?np.diff(系列)>0.4

于 2013-10-25T14:48:51.230 回答
3
blind[series[1:] - series[:-1] > 0.4] = 1

或以下建议tk

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

关键是您使用布尔/逻辑索引(即使用布尔数组进行索引)而不是循环和 if 语句。

于 2013-10-25T14:48:40.857 回答