python中内置函数详细解析

1. Python zip() 函数

描述
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。
语法
zip 语法:

zip([iterable, …])

参数说明:

iterabl – 一个或多个迭代器;

实例:

>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 返回一个对象
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped)  # list() 转换为列表
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c))              # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
 
>>> a1, a2 = zip(*zip(a,b))          # 与 zip 相反,zip(*) 可理解为解压,返回二维矩阵式
>>> list(a1)
[1, 2, 3]
>>> list(a2)
[4, 5, 6]
>>>
# 在for循环中的使用
>>>for q,w in zip(a,b):print((q,w))
>>>(1, 4)
>>>(2, 5)
>>>(3, 6)
>>>c = [(q,w) for q,w in zip(a,b) ]
>>> [(1, 4), (2, 5), (3, 6)]

2. Python tqdm函数

描述:
tqdm是一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。
类:

class tqdm():
  """
  修饰一个可迭代对象,返回一个迭代器,
  它的行为与原始的可迭代器完全相同但是在每次请求一个值时
  输出一个动态更新的progressbar。
  """

  def __init__(self, iterable=None, desc=None, total=None, leave=True,
               file=None, ncols=None, mininterval=0.1,
               maxinterval=10.0, miniters=None, ascii=None, disable=False,
               unit='it', unit_scale=False, dynamic_ncols=False,
               smoothing=0.3, bar_format=None, initial=0, position=None,
               postfix=None, unit_divisor=1000):

部分参数解析:

  • desc : str, optional
    progressbar的前缀。
  • total : int or float, optional
    预期迭代的数量。如果未指定,则尽可能使用len(iterable)。如果浮动(“inf”)或作为最后的手段,只显示基本的进度统计(没有ETA,没有progressbar)。如果gui为真且该参数需要后续更新,则指定一个任意大的初始值,例如9e9。

3. Python item函数

描述:
item主要用于神经网络中,其作用主要为:如果一个tensor只有一个元素,可以使用*item()*函数来把它变成一个Python number

实例:

import torch as t
vector = t.arange(2, 6)

vector
Out[8]: tensor([2, 3, 4, 5])

vector[3]
Out[9]: tensor(5)

vector[3].item()
Out[10]: 5

由此可见item主要是将tensor()变为number。其多用于训练过程中对loss进行统计

参考链接:
github
Python zip() 函数
PyTorch简明教程(李理的博客)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值