栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 小技巧之 zip()

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 小技巧之 zip()

zip()

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包乘一个个元组,然后返回由这些元组组成的对象,好处是可以节约内存
如果各个迭代器的元素个数不同,则返回元组长度与最短对象相同,利用 * 操作符,可以将元组解压为列表

语法:

zip([iterable, ...])

参数说明:
iterable ----- 一个或者多个迭代器

返回值:
一个对象

实例:

>>> x = [1,2,3,4,5,6]
>>> y = [0,1,0,0,1,1]
>>> zipped_data = list(zip(x,y)) # 转化为列表
>>>> zipped_data
[(1, 0), (2, 1), (3, 0), (4, 0), (5, 1), (6, 1)]

应用:
在机器学习中,将样本和标签等一一对应,并可以使用 random.shuffle() 函数实现打乱数据顺序的效果

>>> import random
>>>> random.shuffle(zipped_data)
>>>> zipped_data
[(4, 0), (3, 0), (5, 1), (1, 0), (2, 1), (6, 1)]

与 zip() 相反,zip(*) 可理解为解压,返回二维矩阵式
zip(*) 反向解压,map() 逐项转换类型,list() 做最后转换

>>> new_zipped_data = list(map(list, zip(*zipped_data)))
>>> new_x, new_y = new_zipped_data[0], new_zipped_data[1]
>>>> new_x
[4, 3, 5, 1, 2, 6]
>>> new_y
[0, 0, 1, 0, 1, 1]
>>> new_zipped_data
[[4, 3, 5, 1, 2, 6], [0, 0, 1, 0, 1, 1]]
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/294576.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号