gpt4 book ai didi

python - 查找数据最适合的 bin

转载 作者:行者123 更新时间:2023-12-02 07:17:01 25 4
gpt4 key购买 nike

我正在尝试编写一个函数 get_best_bin 将一个值放入最合适的 bin 中:

我有一个 bin,它是(开始,结束)值的列表。

def get_best_bin(value, bins):
return index of bins that the value fits best into.

例如

bins = [
(0.0, 0.5),
(0.5, 1.5),
(1.5, 3.0),
(4.5, 5.5)
]

value = [0.4,1.0]

等等

get_best_bin(value, bins)

会返回:

1

因为 [0.4,1.0] 中的大部分行都属于 bin (0.5, 1.5)。 * 注意:尽管与 bin (0.0, 0.5) 有一个小交集,但大部分交集在 (0.5, 1.5)*

到目前为止,这是我尝试过的方法,但我只能获得存在交集的可能的 bins:

possible_bins = set()
for ind,width in enumerate(bins):
if width[0] <= value[0] <= width[1]:
possible_bins.add(width)
if width[0] <= value[1] <= width[1]:
possible_bins.add(width)
print(possible_bins)

#{(0.0, 0.5), (0.5, 1.5)}

我可以假设任何值都会与至少一个 bin 有一些交集。

最佳答案

你可以这样做:

def get_best_bin(value, bins):
intesections = [min(value[1], b[1]) - max(value[0], b[0]) for b in bins]
return intesections.index(max(intesections))

解释:

如果有交集,交集从max(value[0], b[0])开始,到min(value[1], b[1])结束。所以交集的长度是end - start,意思是min(value[1], b[1]) - max(value[0], b[0]).

列表理解是创建一个交集长度列表(对应于每个 bin),然后您可以返回该列表中最大数字的索引。

关于python - 查找数据最适合的 bin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60113765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com