我正在处理一个非常简单的信号,如下所示:
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 方式?
你的意思是类似的东西?np.diff(系列)>0.4
blind[series[1:] - series[:-1] > 0.4] = 1
或以下建议tk
blind[np.diff(series) > 0.4] = 1
关键是您使用布尔/逻辑索引(即使用布尔数组进行索引)而不是循环和 if 语句。