[英]Closest neighbor to value selected at random from list?
我有一个列表,我在其中随机选择一个数字。 我现在想在列表中选择与我选择的数字最接近的 integer。 以下是我到目前为止的内容:
from random import choice
a = [0,1,2,3,4,5,6,7,8,9]
r = choice(a)
因此,例如,如果 r = 9,则最近的邻居将是 8。对于 r=7,它可能是 6 或 8。两个最接近的不是特别重要,只要它是相邻值即可。
您可以使用 numpy
from random import choice
import numpy as np
a = np.array([0,1,2,3,4,5,6,7,8,9])
r = choice(a)
neighs = a[abs(a - r) == 1]
print(r, neighs)
# 7 , [6 8]
您还可以使用此方法对数组进行排序并搜索最近的邻居。 正如您提到的,两个最接近的邻居之间的选择并不是特别重要,只要它是相邻值,即 r=7,它可以是 6 或 8。此方法选择两个最接近的邻居中的最小者,即 r =7 它选择 6 而不是 8。
def getclosest(targetVal, sample):
dif=100; cand=0;
for x in sample:
if (abs(x - targetVal) < dif)& (x!=targetVal):
dif = abs(x - targetVal);
cand = x;
return cand;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.