从python列表中绘制相同数量的列表元素

2024-04-16 19:51:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我收集了1000个python列表中存储的数据。数据是浮点数。列表的长度不同。最小的列表是23个数据点,最大的是173个

我想从这些列表中选择23个数据点,但我希望它们在索引位置上或多或少是平均分布的

因此,从最小的列表中,它将是每个元素

从46个元素的列表中,它将是每2个元素,随着它变大,依此类推

这里的挑战显然是那些像40个元素或91个元素,它们实际上不等分,随机性也不会给我沿指数的相等分布

尝试了itertools.islice的开始、停止和步数,但确实无法理解,因为步数必须有所不同,我最终会遇到实际拉动22或24等的情况

谢谢你的帮助 E


Tags: 数据元素列表情况指数itertools浮点数步数
1条回答
网友
1楼 · 发布于 2024-04-16 19:51:50

这是一个单行函数,用于从一个_列表返回n个项目的列表,尽可能等距排列。您可能需要添加一些错误处理,例如,如果n<;len(一份清单)

def select_n(a_list, n):
    return [a_list[len(a_list) * k // n] for k in range(n)]

print(select_n(list(range(150)), 23))
print(select_n(list(range(23)), 23))
print(select_n(list(range(45)), 23))

输出:

[0, 6, 13, 19, 26, 32, 39, 45, 52, 58, 65, 71, 78, 84, 91, 97, 104, 110, 117, 123, 130, 136, 143]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
[0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43]

相关问题 更多 >