Python的10个“秘籍”,这些技术专家全都告诉你了
整理|琥珀
出品|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特性带来的好处,数据分析是第一位的
阿里巴巴技术专家 杨群:基于Python特性带来的好处,数据分析是第一位的
杨群以《高并发场景下的Python的性能挑战》主题做了演讲。
首先杨群从”为什么大家都说Python慢“问题开始讲起,从GIL对性能影响、解释器及Python语言本身特征等方面解释。
(1)最主要的原因是全局解释器锁,Python有垃圾回收机制;
(2)C、C++编辑完之后保证编码是CPU可以理解的,所以很快。但像CPython首先要生成pcy自解码序列之后才会快很多;
(3)Python是动态语言类型,因为读取、写入变量或者引用变量时会进行检查,所以在做类型转化、比较时就会比较耗时;此外,静态类型语言没有这么高的灵活性。
随后,他从服务选型、性能瓶颈分析等问题方面,给出了一些优化方法,如通过数据进行优化、IO密集型与CPU密集型的缓存方法、缓存的开发函数、懒加载等方法与技巧。
最后,杨群总结了三大关键问题:
首先,基于Python特性带来的好处,数据分析是第一位的;
其次,需要合理的测试环境,不要因为性能调优而影响服务稳定性或者出现故障;
第三要有的放矢,有时服务拆分或微服务化是有用的方法,对架构有好处。
博世(中国)投资有限公司大数据分析师 王红星:在实际业务中要看具体的业务需求再定模型
王红星分享了《数据分析及大数据在制造业的应用》的主题演讲。
他重点讲到了数据分析的基本概念、工具及技术,以及应用案例方面的实际案例,特别是在制造业环境中的一些启发。
什么是数据分析呢?数据分析有时也叫“预测型数据分析”、“大数据分析”,有时说深度学习。从广义角度来讲,是指通过分析数据以达到辅助决策或知识抽取的目的;从狭义角度来讲,区别之前在工业或者企业里的可视化,所谓的高级分析都称之为“数据分析”,包括数据挖掘、可视化分析、文本分析等。
那么如何做数据分析呢?王红星主要谈到两种手段:一是统计学,二是机器学习。他表示,机器学习是一种自动化分析模型的数据分析方法。利用算法在数据中迭代的学习,允许计算机在不显式编程的情况下找到隐藏在数据中的模式。当然,在实际业务中要看具体的业务需求再定模型,模型训练主要有三种方式:Pipline,Cross Validation,Grid Search。
王红星总结了工业大数据的主要应用场景,包括:工业物联网生产线、生产质量与控制、计划与排程、供应链优化、产品的需求预测、故障预测、供应链的绿色发展等。最后,他分享了大唐集团项目中数据分析是如何进行实际应用的。
TrueMetrics合伙人 宋天龙:降低门槛,AutoML是机器学习的未来
宋天龙以《Python在Google BigQuery Machine Learning 中的应用》为题做了演讲。
宋天龙表示,在数据前端实现广告投放,需要采用数据库里的数据,通过算法和模型,把预算好的标签或者关键指标回传给业务系统,然后去做自动化投放或者定向投放。而Python在这个过程中,会连接各个不同业务系统的端口,包括实施库内机器学习的过程,包括调参、调用和分配。
为什么要在数据库内做机器学习?首先是为了降低成本,只需要会SQL的数据分析师,不需要数据科学家,其次是简单高效,Analytics 360 (& Firebase) 结构化数据就在BigQuery里,不需要数据导入,能快速建模、评估和应用。
随后,他讲述了BigQuery ML的应用架构和具体工作流程,使用BigQuery ML首先需要获取原始数据,之后做数据清洗和特征工程、模型训练和调优、模型部署和应用,结果以表的形式进行保存。
最后宋天龙指出,AutoML是做机器学习的未来,目的是为了降低大多数人入门的门槛,降低门槛后可以让机器学习带动用户驱动,百度、谷歌、阿里巴巴等都有这样的框架给开发者使用。
平安科技联邦学习团队资深算法研究员 王威
王威以《基于MXNet的图像检测开发案例》做了演讲。
他首先讲述了业务背景,存量文档电子化、快速理赔、智能录入、文字翻译等方面都会用到图像中文字位置的检测以及文字内容的识别。业务的基本流程分为通用模型和专用模型。并不是对于所有的图片都使用通用模型,专用模型的精度会更高,不过它的开发复杂程度也更大。
随后他从专用模型角度讲述了基于特定种类的票据位置检测的开发实例,选取的框架是MXNET中的Gluon,因为它的接口简单易上手,与计算机视觉配套的GluonCV库包含常用的检测网络,而且文档详细,方便对照相似案例实现定制化目标。
如果开发者想用Gluon自己实现检测目标,他还强调要注意损失函数的权重、学习率、多卡训练、状态监控、模型保存、停止训练和数据清洗等方面的问题。
爱奇艺后端开发工程师 张佳圆
张佳圆的演讲主题是《从零到一实现一个 Web Framework》。
简单来讲,Web框架能够让你更方便地编写Web应用。张佳圆随后介绍了Web框架及其核心基础WSGI。Web框架会提供的一些功能,比如把Request & Response对象给封装起来。它还提供路由管理,模板引擎功能以及对象关系映射等功能。随后张佳圆在现场编写代码,实打实演示了一个从零到一编写一个Web框架。
阿里巴巴技术专家 秦续业:Numpy已经变成了一个生态,很多Python数据包都依赖于Numpy。
秦续业带来了以《用Mars并行和分布式执行Numpy》为题的演讲。
秦续业首先介绍了Numpy的最核心的概念ndarray,它非常强大,能表达多维数据,而真实数据不是只有一维和二维这么简单。ndarray主要有以下三大特点:对整组数据快速运算的标准数学函数(无需编写循环) ;读写磁盘数据的工具和操作内存映射文件的工具;提供线性代数、随机数生成和傅里叶变换函数等高级方法。
他表示,Numpy已经变成了一个生态,很多Python数据包都依赖于Numpy。Numpy已经变成一种事实标准、一种协议,并且是生态里最基础的一环。
最后秦续业从阿里巴巴的Mars项目出发介绍了并行和分布式执行Numpy的实例。
天云融创数据科技(北京)有限公司高级工程师 谭可华:Java调Python的方式已经过去了,现在是Python调Java的时代。
谭可华发表了《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为主要使用语言。
魏贞原分享了《Python在金融领域的应用——信用评分卡》的主题演讲。他首先谈到了2020年技术发展趋势,以及在这个时代下数据科学家的典型特征和必备技能。
首先,数据科学家要有数学、统计学的相关知识;编程管理经验;行业知识和技能;在这个基础之上,才可以把真正的客户需求反馈到系统中去。从特征上来看,目前大部分数据科学家都是男性,他们基本会双语交流,多数为2到3年的该岗位经验,平均实践经验是8年以上,主要使用的语言是Python和R。
随后,他主要以业务实际案例的角度分享了Python机器学习在信用评分卡场景上的应用,并从项目流程的六个阶段:数据获取、数据预处理、探索性分析、变量选择、评分系统、信用评分、模型评估、模型开发进行了详细介绍。他指出,每个企业针对的业务方向是不一样的,所以需要的数据源也是不一样的。
英伟达资深深度学习架构工程师 张校捷:学术界对PyTorch框架的研究很多,对初学者非常友好。
张校捷分享了《PyTorch自然语言处理实战》的主题演讲。
Pytorch是基于动态图的深度学习框架 ,相比于静态图的深度学习框架的特点是比较灵活 ,利用PyTorch构建自然语言处理模型的主要步骤包括:获取文本语料库 (通过爬虫等方法收集训练数据);文本数据的清洗 (删除无用数据,冗余数据和乱码等等);文本预处理(正则化,分词,去停词);构建词库(给单词赋予序号);文本转化成对应序号,输入自然语言处理模型进行训练;模型的验证,部署等后续步骤。
现场,他利用PyTorch构建一个基于注意力机制的seq2seq模型,对自然语言处理的数据预处理,深度学习模型的搭建以及部署进行了介绍。在他看来,通过PyTorch使用GPU对模型进行训练是非常方便的。
他指出,相对来说,在工业界TensorFlow的应用范围更广泛,但实际上目前学术界对PyTorch框架的研究很多,这个框架用起来比较舒服,对于初学者是非常友好的,也希望借此机会能够让更多的人了解到PyTorch 2.0公布后的新特性。
即酷科技(北京)有限公司高级工程师 杨钧凯:Python非常适于解决任务导向的问题
杨钧凯带来了《Python代码智能推荐和语义搜索的应用》的主题演讲。
杨钧凯介绍了团队用Python代码智能推荐和语义搜索的原因、方式以及个人的案例分享。他表示,近些年尤其是在数据处理和科学计算方面,Python 有独特的优势。Python的特点在于非常适于解决任务导向的问题,具体这么来理解:首先是设计,理解需求是什么,然后根据已有的经验和知识选择解决方案;其次是实现,很多情况下并不需要构建底层完整的东西,可以利用原有库和工具做想做的事情,把这些库研究清楚,利用这些工具把问题解决掉。
精彩技术分享继续
CSDN 将于 2019 年 5 月 25—27 日在杭州国际博览中心主办 CTA 核心技术与应用峰会,届时将邀请来自学界与产业界机器学习、知识图谱两大技术领域的专家,共同探讨落地应用成果与未来研究趋势。此次活动还得到了杭州工信部人才交流中心的支持。敬请期待~
福利
扫码添加小助手,回复:1,加入Python技术交流群,共享Python学习资料,定时更新。