gpt4 book ai didi

python - 根据最小子列表的长度对子列表进行下采样

转载 作者:太空宇宙 更新时间:2023-11-04 08:33:45 24 4
gpt4 key购买 nike

我有一个像下面这样的列表列表,子列表的数量和长度是可变的:

test = [[1, 5, 4, 3, 5, 2], [4, 2], [5, 2, 4, 3, 5], [5, 3, 1]]

我想将所有子列表下采样到最短子列表的长度 - 本例 2。这意味着我想从所有子列表中随机选择 2 个元素作为输出。

对于包含大约 100 个子列表的更大列表,每个子列表都超过 100000 个项目,最有效的方法是什么?

最佳答案

使用 generator expressionlist comprehensionrandom.sample()喜欢:

代码:

min_len = min(len(x) for x in data)
[random.sample(x, min_len) for x in data]

测试代码:

import random

data = [[1, 5, 4, 3, 5, 2], [4, 2], [5, 2, 4, 3, 5], [5, 3, 1]]
min_len = min(len(x) for x in data)
print([random.sample(x, min_len) for x in data])

结果:

[[5, 4], [4, 2], [4, 5], [5, 3]]

关于python - 根据最小子列表的长度对子列表进行下采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50867030/

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