首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >均匀分布的Django QuerySet (或Python list)切片

均匀分布的Django QuerySet (或Python list)切片
EN

Stack Overflow用户
提问于 2013-04-17 03:26:10
回答 1查看 270关注 0票数 0

我想从数据库中获取一些值,并对其中的"n“个值进行切片,比如在图上绘制。

我从一个Django QuerySet开始,但我不认为这是我可以通过ORM减少的东西,所以我可以获得一个值列表,然后使用Python库中的任何可用的库来获取数据样本。

因此,如果我有一个包含1000个项目的数据集,我希望能够从该数据集中抓取均匀分布的非随机样本范围,始终包括起点和终点,然后均匀分布介于两者之间的元素。

例如,如果:

代码语言:javascript
复制
data = [x for x in xrange(0, 777)]

我想要10个,我怎么能得到一个列表,不是每10个项目,而是恰好10个列表项目均匀分布在列表中的元素总数上?

我在试着:

代码语言:javascript
复制
number_of_results = 10
step = len(data) / number_of_results
data[::step]

但我希望有一种更有效的方法(也是一种保持端点并准确返回number_of_results项的方法,即使这些项之间的步长不能完全相等)。

EN

回答 1

Stack Overflow用户

发布于 2013-04-17 03:39:45

可能有更有效的方法来做这件事,但这只是一个想法:

代码语言:javascript
复制
qs_ids = list(ModelA.objects.order_by('id').values_list('id', flat=True))

number_of_results = 10
step = len(qs_ids) / number_of_results
ids = data[::step]

qs = ModelA.objects.filter(id__in=ids).order_by('id')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16045437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档