热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python的10个“秘籍”,这些技术专家全都告诉你了

整理|琥珀出品|Python大本营(ID:pythonnews)基于其特性带来的种种优势,Pyt

640?wx_fmt=jpeg


整理|琥珀

出品|Python大本营(ID:pythonnews)


基于其特性带来的种种优势,Python在近年来的各大编程语言排行榜上也是“一路飚红”,并成为越来越多开发者计划学习的编程语言。如今,大家最迫切关心的是,该如何利用Python构建相应的技术体系以匹配到自己的实际业务中去?


4月13日,由中国IT技术社区CSDN举办的“2019 Python开发者日”在北京联合大学隆重开启。本次活动邀请10余位身处一线的Python技术专家,聚焦Web开发、数据分析、人工智能等技术模块,全方位探讨他们对真实生产环境中使用Python应对IT挑战的真知灼见,并与在座的数百位学生、开发者等业内同行进行了深入交流。接下来的第二天,大会还针对不同层次的开发者,安排了深度培训实操环节,为开发者们带来更多深度实战的机会。


CSDN 总编辑谷磊在活动中致辞并表示:“CSDN是中国专业的IT技术社区,有2700万注册会员,我们每年会做一个大型调查问卷,今年调查结果显示:近六成开发者最近想学习的语言是Python。CSDN社区上有很多Python学习资源,很多用户反馈,学了这些资源以后更想看到的大型科技互联网公司是怎样应用Python做实践应用案例的。这是我们做Python开发者日活动的初衷。”


下面我们就来一起回顾下这10位身处一线的技术专家在活动首日所做的精彩分享。


阿里巴巴技术专家 杨群:基于Python特性带来的好处,数据分析是第一位的


640?wx_fmt=jpeg      

杨群以《高并发场景下的Python的性能挑战》主题做了演讲。


首先杨群从”为什么大家都说Python慢“问题开始讲起,从GIL对性能影响、解释器及Python语言本身特征等方面解释。


(1)最主要的原因是全局解释器锁,Python有垃圾回收机制;


(2)C、C++编辑完之后保证编码是CPU可以理解的,所以很快。但像CPython首先要生成pcy自解码序列之后才会快很多;


(3)Python是动态语言类型,因为读取、写入变量或者引用变量时会进行检查,所以在做类型转化、比较时就会比较耗时;此外,静态类型语言没有这么高的灵活性。


随后,他从服务选型、性能瓶颈分析等问题方面,给出了一些优化方法,如通过数据进行优化、IO密集型与CPU密集型的缓存方法、缓存的开发函数、懒加载等方法与技巧。


最后,杨群总结了三大关键问题:


首先,基于Python特性带来的好处,数据分析是第一位的;


其次,需要合理的测试环境,不要因为性能调优而影响服务稳定性或者出现故障;


第三要有的放矢,有时服务拆分或微服务化是有用的方法,对架构有好处。


博世(中国)投资有限公司大数据分析师 王红星:在实际业务中要看具体的业务需求再定模型


640?wx_fmt=jpeg       

王红星分享了《数据分析及大数据在制造业的应用》的主题演讲。


他重点讲到了数据分析的基本概念、工具及技术,以及应用案例方面的实际案例,特别是在制造业环境中的一些启发。


什么是数据分析呢?数据分析有时也叫“预测型数据分析”、“大数据分析”,有时说深度学习。从广义角度来讲,是指通过分析数据以达到辅助决策或知识抽取的目的;从狭义角度来讲,区别之前在工业或者企业里的可视化,所谓的高级分析都称之为“数据分析”,包括数据挖掘、可视化分析、文本分析等。


那么如何做数据分析呢?王红星主要谈到两种手段:一是统计学,二是机器学习。他表示,机器学习是一种自动化分析模型的数据分析方法。利用算法在数据中迭代的学习,允许计算机在不显式编程的情况下找到隐藏在数据中的模式。当然,在实际业务中要看具体的业务需求再定模型,模型训练主要有三种方式:Pipline,Cross Validation,Grid Search。


王红星总结了工业大数据的主要应用场景,包括:工业物联网生产线、生产质量与控制、计划与排程、供应链优化、产品的需求预测、故障预测、供应链的绿色发展等。最后,他分享了大唐集团项目中数据分析是如何进行实际应用的。


TrueMetrics合伙人 宋天龙:降低门槛,AutoML是机器学习的未来


640?wx_fmt=jpeg      

宋天龙以《Python在Google BigQuery Machine Learning 中的应用》为题做了演讲。


宋天龙表示,在数据前端实现广告投放,需要采用数据库里的数据,通过算法和模型,把预算好的标签或者关键指标回传给业务系统,然后去做自动化投放或者定向投放。而Python在这个过程中,会连接各个不同业务系统的端口,包括实施库内机器学习的过程,包括调参、调用和分配。


为什么要在数据库内做机器学习?首先是为了降低成本,只需要会SQL的数据分析师,不需要数据科学家,其次是简单高效,Analytics 360 (& Firebase) 结构化数据就在BigQuery里,不需要数据导入,能快速建模、评估和应用。

 

随后,他讲述了BigQuery ML的应用架构和具体工作流程,使用BigQuery ML首先需要获取原始数据,之后做数据清洗和特征工程、模型训练和调优、模型部署和应用,结果以表的形式进行保存。


最后宋天龙指出,AutoML是做机器学习的未来,目的是为了降低大多数人入门的门槛,降低门槛后可以让机器学习带动用户驱动,百度、谷歌、阿里巴巴等都有这样的框架给开发者使用。


平安科技联邦学习团队资深算法研究员  王威


640?wx_fmt=jpeg      

王威以《基于MXNet的图像检测开发案例》做了演讲。


他首先讲述了业务背景,存量文档电子化、快速理赔、智能录入、文字翻译等方面都会用到图像中文字位置的检测以及文字内容的识别。业务的基本流程分为通用模型和专用模型。并不是对于所有的图片都使用通用模型,专用模型的精度会更高,不过它的开发复杂程度也更大。


随后他从专用模型角度讲述了基于特定种类的票据位置检测的开发实例,选取的框架是MXNET中的Gluon,因为它的接口简单易上手,与计算机视觉配套的GluonCV库包含常用的检测网络,而且文档详细,方便对照相似案例实现定制化目标。


如果开发者想用Gluon自己实现检测目标,他还强调要注意损失函数的权重、学习率、多卡训练、状态监控、模型保存、停止训练和数据清洗等方面的问题。


爱奇艺后端开发工程师 张佳圆


640?wx_fmt=jpeg      

张佳圆的演讲主题是《从零到一实现一个 Web Framework》。


简单来讲,Web框架能够让你更方便地编写Web应用。张佳圆随后介绍了Web框架及其核心基础WSGI。Web框架会提供的一些功能,比如把Request & Response对象给封装起来。它还提供路由管理,模板引擎功能以及对象关系映射等功能。随后张佳圆在现场编写代码,实打实演示了一个从零到一编写一个Web框架。


阿里巴巴技术专家 秦续业:Numpy已经变成了一个生态,很多Python数据包都依赖于Numpy。


640?wx_fmt=jpeg      

秦续业带来了以《用Mars并行和分布式执行Numpy》为题的演讲。


秦续业首先介绍了Numpy的最核心的概念ndarray,它非常强大,能表达多维数据,而真实数据不是只有一维和二维这么简单。ndarray主要有以下三大特点:对整组数据快速运算的标准数学函数(无需编写循环) ;读写磁盘数据的工具和操作内存映射文件的工具;提供线性代数、随机数生成和傅里叶变换函数等高级方法。


他表示,Numpy已经变成了一个生态,很多Python数据包都依赖于Numpy。Numpy已经变成一种事实标准、一种协议,并且是生态里最基础的一环。


最后秦续业从阿里巴巴的Mars项目出发介绍了并行和分布式执行Numpy的实例。


天云融创数据科技(北京)有限公司高级工程师 谭可华:Java调Python的方式已经过去了,现在是Python调Java的时代。


640?wx_fmt=jpeg      

谭可华发表了《Spark with Python应用》的主题演讲。


谭可华首先展示了当前社区编程语言的排名情况,毫无疑问,Python已经成为主流语言,并呈上升趋势;尽管相对来讲,Java语言使用的开发者是最多的。但现在有关Python的框架、工具越来越丰富,Java调用Python的方式已经过去了,现在是Python调Java的方式。例如,Python的数据处理实用工具numpy/scipy/matplotlib、Pandas库、微软的NLTK等。


而调用Python函数,Spark框架有天然的优势。Spark使用py4j来实现Python与Java的互操作,从而实现使用Python编写Spark程序。Spark也同样提供了pyspark,一个Spark的python shell,可以以交互式的方式使用Python编写Spark程序。


随后,谭可华总结了PySpark的运行原理,使用的优缺点等问题。


Pyspark中dataframe的优势主要在于支持多种数据格式和数据源、能够从单台笔记本电脑上的千字节数据扩展到大型群集上的PB级数据等。同样,Pandas与Pyspark中dataframe是有区别的。


IBM高级项目经理 魏贞原:数据科学家平均实践经验超过8年,Python和R为主要使用语言。


640?wx_fmt=jpeg      

魏贞原分享了《Python在金融领域的应用——信用评分卡》的主题演讲。他首先谈到了2020年技术发展趋势,以及在这个时代下数据科学家的典型特征和必备技能。


首先,数据科学家要有数学、统计学的相关知识;编程管理经验;行业知识和技能;在这个基础之上,才可以把真正的客户需求反馈到系统中去。从特征上来看,目前大部分数据科学家都是男性,他们基本会双语交流,多数为2到3年的该岗位经验,平均实践经验是8年以上,主要使用的语言是Python和R。


随后,他主要以业务实际案例的角度分享了Python机器学习在信用评分卡场景上的应用,并从项目流程的六个阶段:数据获取、数据预处理、探索性分析、变量选择、评分系统、信用评分、模型评估、模型开发进行了详细介绍。他指出,每个企业针对的业务方向是不一样的,所以需要的数据源也是不一样的。


英伟达资深深度学习架构工程师 张校捷:学术界对PyTorch框架的研究很多,对初学者非常友好。


640?wx_fmt=jpeg      

张校捷分享了《PyTorch自然语言处理实战》的主题演讲。


Pytorch是基于动态图的深度学习框架 ,相比于静态图的深度学习框架的特点是比较灵活 ,利用PyTorch构建自然语言处理模型的主要步骤包括:获取文本语料库 (通过爬虫等方法收集训练数据);文本数据的清洗 (删除无用数据,冗余数据和乱码等等);文本预处理(正则化,分词,去停词);构建词库(给单词赋予序号);文本转化成对应序号,输入自然语言处理模型进行训练;模型的验证,部署等后续步骤。


现场,他利用PyTorch构建一个基于注意力机制的seq2seq模型,对自然语言处理的数据预处理,深度学习模型的搭建以及部署进行了介绍。在他看来,通过PyTorch使用GPU对模型进行训练是非常方便的。


他指出,相对来说,在工业界TensorFlow的应用范围更广泛,但实际上目前学术界对PyTorch框架的研究很多,这个框架用起来比较舒服,对于初学者是非常友好的,也希望借此机会能够让更多的人了解到PyTorch 2.0公布后的新特性。


即酷科技(北京)有限公司高级工程师 杨钧凯:Python非常适于解决任务导向的问题


640?wx_fmt=jpeg      

杨钧凯带来了《Python代码智能推荐和语义搜索的应用》的主题演讲。


杨钧凯介绍了团队用Python代码智能推荐和语义搜索的原因、方式以及个人的案例分享。他表示,近些年尤其是在数据处理和科学计算方面,Python 有独特的优势。Python的特点在于非常适于解决任务导向的问题,具体这么来理解:首先是设计,理解需求是什么,然后根据已有的经验和知识选择解决方案;其次是实现,很多情况下并不需要构建底层完整的东西,可以利用原有库和工具做想做的事情,把这些库研究清楚,利用这些工具把问题解决掉。


精彩技术分享继续


CSDN 将于 2019 年 5 月 25—27 日在杭州国际博览中心主办 CTA 核心技术与应用峰会,届时将邀请来自学界与产业界机器学习、知识图谱两大技术领域的专家,共同探讨落地应用成果与未来研究趋势。此次活动还得到了杭州工信部人才交流中心的支持。敬请期待~


福利

扫码添加小助手,回复:1,加入Python技术交流群,共享Python学习资料,定时更新。

640?wx_fmt=jpeg

640?wx_fmt=jpeg


推荐阅读
  • 如何在系统设置中找到高级配置选项 ... [详细]
  • 深入对话上海视九叶文鑫:HTML5技术引领智能电视新趋势
    深入对话上海视九叶文鑫:HTML5技术引领智能电视新趋势 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战
    OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
  • 如何利用Java 5 Executor框架高效构建和管理线程池
    Java 5 引入了 Executor 框架,为开发人员提供了一种高效管理和构建线程池的方法。该框架通过将任务提交与任务执行分离,简化了多线程编程的复杂性。利用 Executor 框架,开发人员可以更灵活地控制线程的创建、分配和管理,从而提高服务器端应用的性能和响应能力。此外,该框架还提供了多种线程池实现,如固定线程池、缓存线程池和单线程池,以适应不同的应用场景和需求。 ... [详细]
  • 第六章:枚举类型与switch结构的应用分析
    第六章深入探讨了枚举类型与 `switch` 结构在编程中的应用。枚举类型(`enum`)是一种将一组相关常量组织在一起的数据类型,广泛存在于多种编程语言中。例如,在 Cocoa 框架中,处理文本对齐时常用 `NSTextAlignment` 枚举来表示不同的对齐方式。通过结合 `switch` 结构,可以更清晰、高效地实现基于枚举值的逻辑分支,提高代码的可读性和维护性。 ... [详细]
  • 阿里云AI ET担任CEO,与蜻蜓FM猫局长展开深度对话
    阿里云AI ET担任CEO,与蜻蜓FM猫局长展开深度对话 ... [详细]
  • 手指触控|Android电容屏幕驱动调试指南
    手指触控|Android电容屏幕驱动调试指南 ... [详细]
  • 数字化转型:CRM系统助力企业突破管理瓶颈,实现高效运营
    数字化转型:CRM系统助力企业突破管理瓶颈,实现高效运营 ... [详细]
  • 本文探讨了利用Python编程语言开发自动化脚本来实现文件的全量和增量备份方法。通过详细分析不同备份策略的特点,文章介绍了如何使用Python标准库中的os和shutil模块来高效地管理和执行备份任务。此外,还提供了示例代码和最佳实践,帮助读者快速掌握自动化备份技术,确保数据的安全性和完整性。 ... [详细]
author-avatar
郑青青11_875
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有