我正在处理一个非常简单的信号:
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?
答案 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语句。