Python 在圆形数组中查找最近的数字
我有一个numpy阵列:Python 在圆形数组中查找最近的数字,python,numpy,Python,Numpy,我有一个numpy阵列: np.arange(1, 366) 我有两个值:355和129。我想找出其中哪一个值与该数组中的某个数字最接近,比如说36 在这种情况下,答案将是355,因为我希望数组滚动,即365后面跟着1` 我可以通过使用多个if-else条件来实现这一点,有没有更符合python的解决方案?我使用极坐标数学来解决这个问题: import numpy as np aa=np.arange(1, 366) bb=np.array([355, 136, 155,154 ]) c=36
np.arange(1, 366)
我有两个值:355
和129
。我想找出其中哪一个值与该数组中的某个数字最接近,比如说36
在这种情况下,答案将是355
,因为我希望数组滚动,即365后面跟着1`
我可以通过使用多个if-else条件来实现这一点,有没有更符合python的解决方案?我使用极坐标数学来解决这个问题:
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
我利用极坐标数学来解决这个问题:
输出:
355
你也可以分享你的代码(你尝试过的解决方案)如果这是关于序列号的(这是你的问题所说的,但可能不是你的意思),你可以使用模运算符。如果这是关于序列号的,你也可以分享你的代码(你尝试过的解决方案)吗(这就是你的问题所说的,但可能不是你的意思),你可以使用模算子。我认为他指的不是二维几何圆,而是一个向量,它围绕着位置。有趣的是,几何思想仍然有效:)@roadrunner66我只是受圆圈的启发而使用几何:我认为DHe不是指2D几何圆圈,而是指一个矢量,它在位置上环绕。有趣的是,几何概念仍然有效:)@roadrunner66我只是受圆圈的启发而使用几何:D
355