如何检测numpy数组中元素的符号变化

如何检测numpy数组中元素的符号变化,第1张

如何检测numpy数组中元素符号变化

就像是

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行之间。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5644982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存