gpt4 book ai didi

python - 对 float 进行分组以查找最常见的一般数字

转载 作者:太空宇宙 更新时间:2023-11-03 15:14:44 24 4
gpt4 key购买 nike

我正在与 eBay 合作,我有 100 个已售商品价格的 list 。我想要做的是将每个浮点价格分成几组,然后对组进行计数以确定该商品最常见的一般价格,这样我就可以自动为我自己的商品定价。

最初,我想将价格按 10 美元的值(value)分开,但我意识到这不是一个好的分组方法,因为价格可能会因异常值或不相关的项目等而有很大差异。

如果我有一个像这样的价格列表:[90, 92, 95, 99, 1013, 1100]我的愿望是应用程序将值分成:{九十:4,千:2}

但我只是不确定如何告诉 python 这样做。最好是,我可以将此片段集成到我的代码中,这是最简单的,更好!

如有任何帮助或建议,我们将不胜感激!

最佳答案

您使用的技术取决于您对组的概念。

如果组数已知,请使用 kmeansk==2。请参阅this link对于纯 Python 中的工作代码:

from kmeans import k_means, assign_data

prices = [90, 92, 95, 99, 1013, 1100]
points = [(x,) for x in prices]
centroids = k_means(points, k=2)
labeled = assign_data(centroids, points)
for centroid, group in labeled.items():
print('Group centered around:', centroid[0])
print([x for (x,) in group])
print()

输出:

Group centered around: 94.0
[90, 92, 95, 99]

Group centered around: 1056.5
[1013, 1100]

或者,如果元素之间的固定最大距离定义了分组,则只需对元素进行排序和循环,检查它们之间的距离以查看新组是否已开始:

max_gap = 100
prices.sort()
groups = []
last_price = prices[0] - (max_gap + 1)
for price in prices:
if price - last_price > max_gap:
groups.append([])
groups[-1].append(price)
last_price = price
print(groups)

输出:

[[90, 92, 95, 99], [1013, 1100]]

关于python - 对 float 进行分组以查找最常见的一般数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43955837/

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