《数据驱动安全:数据安全分析、可视化和仪表盘》一2.1 为什么选Python?为什么选R?为什么两者都要?-阿里云开发者社区

开发者社区> 华章出版社> 正文

《数据驱动安全:数据安全分析、可视化和仪表盘》一2.1 为什么选Python?为什么选R?为什么两者都要?

简介: 本节书摘来华章计算机《数据驱动安全:数据安全分析、可视化和仪表盘》一书中的第3章 ,第2.1节,[美]杰·雅克布(Jay Jacobs)鲍布·鲁迪斯(Bob Rudis) 著 薛杰 王占一 张卓 胡开勇 蒋梦飏 赵爽 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

本节书摘来华章计算机《数据驱动安全:数据安全分析、可视化和仪表盘》一书中的第3章 ,第2.1节,[美]杰·雅克布(Jay Jacobs)鲍布·鲁迪斯(Bob Rudis) 著 薛杰 王占一 张卓 胡开勇 蒋梦飏 赵爽 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.1 为什么选Python?为什么选R?为什么两者都要?

通常讨论在设定的场景下哪种编程语言更好,会很快演变成一场没有胜利和结论的争论。作为数据安全科学家,不要对语言有很强烈的偏见。通常每种语言总在不同的领域闪光,你需要将它们融合在一起以解决实际问题。
Python和R作为数据分析的两种领导语言,它们界面相似又有着各自独立的元素,使它们对某些任务来说很适合,对另一些任务则不然,我们会在本书里不停练习R/Rstudio、Python/IPthon/pandas的使用。当你熟悉了一种或全部的环境,并了解每种选择的原理,不要因此变得自满。
对于有编程经验的读者,加快Python学习非常简单,你可以期望3至6个月就能相当熟练,尤其是你可以将现有的一些脚本程序变为Python程序作为练习,你的程序也许不够Python化(没有充分利用一些特性、功能、语法),但是付出终将有所回报。对于那些统计语言的新手,熟悉R将带来不小的挑战。统计学家创造了R语言,随着你对R的深入钻研,你会发现里面有相当明显的血统。如果你能经受得起R的语法以及函数库的细微差别带来的痛苦,另外将自己的Excel工作流向R语言过渡,那么3至6个月后,你也能在#rstats Twitter主题上上榜。
一个成功的数据科学家的标志是适应性,你应该在网络空间内持续寻找新兴的工具帮你解决问题。我们将在附录A里向你介绍一些明日之星。

  1. 为何用Pyhton
    Guido van Rossum在1989年12月创造了Python这门实用的编程语言。他和他的同事需要一种通用方法来协同系统管理任务,发挥当时操作系统的一些特性优势。尽管当时有许多管理员友好型的解释语言或工具,但是没有一种具有Python一样的灵活性和可扩展性(Guido van Rossum的观点)。

Python的灵活性和可扩展性(事实上是免费和自由)在2000年初期,尤其吸引科学、学术,以及行业社区。他的创新让通用编程语言相比同期专用领域编程语言更容易使用解决自己的学科问题。
你很难找到某个文件类型是Python不能读取的,或者某个Python不能访问的数据库,或者某个Python不能执行的算法。当你熟悉这门语言,Python快速获取、清理、转换原始数据的能力会让你惊异,往往这些任务是分析或者可视化处理过程中早期的一个步骤。直到2008年AQR Capital Management公司创建了pandas(http://pandas .pydata.org)模块,pandas提供了Python化的类似功能,像其他基础分析语言如R、SAS、MATLAB一样。这是一个真正有意义的开始。
尽管Python解释器提供了交互式的执行shell,爱好者们意识到需要扩展基本功能,甚至开发出更动态化以及健壮的交互式环境IPython,以满足他们的需要。将IPython与pandas模块一起使用,刚崭露头角的数据分析师现在拥有了实用和数据为中心的工具集,为追寻知识助一臂之力。

  1. 为什么用R语言
    与Python语言不同的是,R语言的历史与特定领域紧密相关,它是为数理统计分析和可视化而全力打造的。它能够访问或处理多种文件类型和数据库(依然是灵活性和可扩展性的设计),但是R语言类似Lisp、S风格的语法,尤其是基本的面向分析的数据类型,往往只被“数据统计员”掌握。

基础R语言仅仅几行代码就能够很简单地进行广泛的统计分析,生成富含信息和吸引人的可视化图表。许多现代的R语言库,比如plyr和ggplot2,拓展和增强了R的基本能力,许多互联网上抢眼的例子以及前沿的数据分析和可视化都依赖于此。
和Python一样,R语言同样提供一个可交互的执行shell,用来满足基本的功能需求。至此,RStudio随着更多交互需求而发展成为了集成开发环境、数据探索工具、重复实验环境的集合,它成倍提升了R语言的默认能力。

  1. 为什么两者都要用
    如果你有一把锤子,所有东西都可以看作是钉子。有些时候,通用编程语言的灵活性是非常顺手的,比如当你使用Python时。但有时候R语言只要3行代码就实现的,用Python却需要30多行代码(即使是用pandas)完成。因为你的最终目标是尽可能快速地,比较炫地实现有见地和准确的分析。如何选用合适的工具完成工作变得尤为重要,它能让你尽可能可靠高效地开发。

如果不承认Python和R都不完美,需互相补充,会显得有些虚伪。我们接触的一些书本外的实例会遇到这样的场景,通常一些“学习机会”会出现在你自己进行分析时,开始会沮丧(被困住的礼貌说法),然后用另外一个工具搞定它。即使有允许你在R脚本里运行Python代码的R软件包rJython,或者在Python脚本里能运行R代码的rpy和rpy2模块,这样的场景也会非常频繁出现。
假如工具箱包含了Python和R,你应该能解决你遇到的大部分问题,即使不是全部。假如你发现在一些场景下没有你要的功能,Python和R都有充满活力的社区,社区里的人能提供紧急帮助,甚至帮助开发满足新需求的函数或模块。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接