我有一个numpy的数组:
np.arange(1, 366)
我有2个值:355
和129
。我想找到其中哪个值与该数组中的数字最接近的值36
。
在这种情况下,答案将是355
因为我希望数组滚动即365 is followed by
1`。
我可以通过使用多个if else条件来做到这一点,还有更多的pythonic解决方案吗?
import numpy as np
aa=np.arange(1, 366)
bb=np.array([355, 136, 155,154 ])
c=36
def short(bb,c):
x0= np.min(np.abs(bb-c))
x1= np.min(np.abs(366-bb+c))
if x0<x1:
return bb[np.argmin(bb-c)]
else:
return bb[np.argmin(366-bb+c)]
bb=np.array([355, 136, 155,154 ])
print short(bb,c)
bb=np.array([355, 136, 155,154,38])
print short(bb,c)
输出:
355
38
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句