写点什么

python 好用的函数或库

  • 2022 年 5 月 07 日
  • 本文字数:890 字

    阅读完需:约 3 分钟

引言

python的之所以会循序火起来的一个主要原因是在各个领域都有丰富和成熟的库。


  • web 有 flask django

  • 统计和数据计算 numpy scipy

  • 数据处理和分析: pandas

  • 图像处理:opencv-python Scikit-image

  • 机器学习: scikit-learn

  • 深度学习: tensorflow pytorch

  • 可视化: matplotlib

  • ...(3D 模型,游戏开发等等)


库多了,有个缺点是可能你并不知道它的存在,又有相同的需求痛点, 重复造轮子可不好,不 pythonic 哈。


这里先介绍两个个简单实用的库和函数(后续会持续更新哦)

内容

tqdm

python的进度条库。观察执行进度的时候,你会用到的。


import timefrom tqdm import tqdmpar = tqdm(['1', '2', '3', '4'])for data in par:    par.set_description('the info is %s' % data)    time.sleep(1)
复制代码

zip

zip 从参数中的多个迭代器取元素组合成一个新的迭代器;


zip(a,b)zip()函数分别从 a 和 b 依次各取出一个元素组成元组,再将依次组成的元组组合成一个新的迭代器


a = [1,2,3]b = [4,5,6]
zipped = zip(a, b)print(list(zipped))# [(1, 4), (2, 5), (3, 6)]
unzip = zip(*zipped)for i in unzip: print(list(i))# [1, 2, 3]# [4, 5, 6]
复制代码

Python partial 对象

在使用函数过程中,特别是在函数参数特别多,经常会遇到函数参数只使用的部分(非默认参数值),使用的时候要重复输入同样的参数。如下所示:



def funcA(parama=1, paramb=2, paramc=3): return parama + paramb + paramc
print(funcA(5, 6, 8))print(funcA(5, 6, 9))
复制代码


Python 中 functools 提供了 partial 可以重新定义部分的参数固定的函数(函数的函数),可以解决上述问题。


from functools import partial
def funcA(parama=1, paramb=2, paramc=3): return parama + paramb + paramc
print(funcA(5, 6, 8))print(funcA(5, 6, 9))

pfuncA = partial(funcA, 5, 6)
print(pfuncA(8))print(pfuncA(9))
复制代码


partial 特别适合于以函数作为参数函数(函数 A 的参数是函数 B),而函数 A 调用函数 B 的参数是固定的,但是在外部又要控制不同函数 B 的情况,比如 Keras 中的 loss function 的输入只有 y_pred 和 y_true,但是往往 loss function 还设有其他的参数。


结语

希望对大家有帮助。




发布于: 刚刚阅读数: 2
用户头像

公众号:人工智能微客(weker) 2019.11.21 加入

人工智能微客(weker)长期跟踪和分享人工智能前沿技术、应用、领域知识,不定期的发布相关产品和应用,欢迎关注和转发

评论

发布
暂无评论
python好用的函数或库_Python_AIWeker-人工智能微客_InfoQ写作社区