就像是
a = array([1,1,-1,-2,-3,4,5])asign = np.sign(a)signchange = ((np.roll(asign, 1) - asign) != 0).astype(int)print signchangearray([0, 0, 1, 0, 0, 1, 0])
现在,numpy.roll进行循环移位,因此,如果最后一个元素的符号与第一个元素不同,则signchange数组中的第一个元素将为1。如果不需要,当然可以做一个简单的 *** 作
signchange[0] = 0
另外,np.sign认为0具有其自己的符号,不同于正值或负值。例如,即使零线仅“交叉”一次,[-1,0,1]的“
signchange”数组也将为[0,1,1]。如果不希望这样,可以插入行
sz = asign == 0while sz.any(): asign[sz] = np.roll(asign, 1)[sz] sz = asign == 0
在第一个示例中的第2行和第3行之间。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)