fri*_*hax 3 python nearest-neighbor bins
我有一个排序的浮动列表y,以及未排序的浮动列表x.
现在,我需要找出它x之间的每个元素y,最好是索引y.例如,如果
y=[1,2,3,4,5]
x[0]=3.5
Run Code Online (Sandbox Code Playgroud)
我需要为指数输出0的x是(2,3),因为3.5是之间y[2]和y[3].
基本上,我认为它与看到ybin边缘和排序x到那些箱子是一样的.
你最容易做到的是什么?
我会使用zip(itertools.izip在Python 2.x中)来完成这个:
from itertools import islice#, izip as zip # if Python 2.x
def nearest_neighbours(x, lst):
for l1, l2 in zip(lst, islice(lst, 1, None)):
if l1 <= x <= l2:
return l1, l2
else:
# ?
Run Code Online (Sandbox Code Playgroud)
用法示例:
>>> nearest_neighbours(3.5, range(1, 6))
(3, 4)
Run Code Online (Sandbox Code Playgroud)
你必须决定你想要发生什么,如果x不在任何一对之间lst(即替换# ?!)如果你想要索引(虽然你的例子没有使用它们),可以玩enumerate.
| 归档时间: |
|
| 查看次数: |
806 次 |
| 最近记录: |