2024年3月20日 11:07 by wst
python小技巧在数据处理过程中,经常需要对大数据集进行分割,以便放到多个进程中运行。
前两天发现一个数据分割小技巧,这里分享给大家,稍后做详细说明。
# 样本
samples = list(range(10820))
# 分片数
num_shards = 8
# 根据分片数分割样本
shards = [samples[i::num_shards] for i in range(num_shards)]
for idx,shard in enumerate(shards):
print(f"shard[{idx}] count:{len(shard)}")
详解:
1.samples 为读取的样本,现实场景可能是100w张图片的地址。
2.num_shards 为分片数,即划分为多少份。
3.samples[i::num_shards] 为列表分割,num_shards为步长。
问: 列表为什么要这样分割呢?有懂的朋友吗?