《数据驱动安全:数据安全分析、可视化和仪表盘》一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都有充满活力的社区,社区里的人能提供紧急帮助,甚至帮助开发满足新需求的函数或模块。

相关文章
|
3天前
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
【7月更文挑战第23天】在Python编程中,掌握算法复杂度—时间与空间消耗,是提升程序效能的关键。算法如冒泡排序($O(n^2)$时间/$O(1)$空间),或使用Python内置函数找最大值($O(n)$时间),需精确诊断与优化。数据结构如哈希表可将查找从$O(n)$降至$O(1)$。运用`timeit`模块评估性能,深入理解数据结构和算法,使Python代码更高效。持续实践与学习,精通复杂度管理。
20 9
|
1天前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【7月更文挑战第25天】在Python Web开发中确保应用安全至关重要。以下是针对SQL注入、XSS与CSRF攻击的防护策略及示例代码
17 6
|
2天前
|
数据可视化 数据挖掘 Python
数据界的颜值担当!Python数据分析遇上Matplotlib、Seaborn,可视化美出新高度!
【7月更文挑战第24天】在数据科学领域,Python的Matplotlib与Seaborn将数据可视化升华为艺术,提升报告魅力。Matplotlib作为基石,灵活性强,新手友好;代码示例展示正弦波图的绘制与美化技巧。Seaborn针对统计图表,提供直观且美观的图形,如小提琴图,增强数据表达力。两者结合,创造视觉盛宴,如分析电商平台销售数据时,Matplotlib描绘趋势,Seaborn揭示类别差异,共塑洞察力强的作品,使数据可视化成为触动人心的艺术。
22 7
|
1天前
|
SQL 安全 数据库
|
1天前
|
SQL 存储 安全
Python Web安全大挑战:面对SQL注入、XSS、CSRF,你准备好了吗?
【7月更文挑战第25天】在Python Web应用开发中,安全至关重要,需防范如SQL注入、XSS与CSRF等攻击。**SQL注入**风险可通过避免直接拼接用户输入至SQL语句,改用参数化查询来缓解。**XSS**则需对用户输入的内容进行HTML转义处理,防止恶意脚本执行。对于**CSRF**,实现包括生成并验证CSRF令牌在内的防护机制是关键。综合运用这些防御策略能显著增强应用的安全性,但需持续学习以对抗不断变化的威胁。
16 5
|
3天前
|
编解码 数据可视化 API
Python可视化
【7月更文挑战第18天】Python可视化在数据科学中至关重要,不仅揭示数据模式,还通过样式化增强吸引力。Matplotlib、Seaborn、Plotly及Bokeh等库提供多样样式化技巧,如自定义颜色、线条、图例,以及交互性,助您打造美观、易读的图表。从基本图表到复杂应用,Python工具包丰富,提升数据故事讲述能力。掌握这些技巧,让您的数据可视化更加出色,深入挖掘数据价值。🚀📊💡
11 1
|
4天前
|
安全 API 网络架构
Python RESTful API设计新篇章,打造高效、易用、安全的Web服务接口,你准备好了吗?
【7月更文挑战第22天】在数字化转型中,RESTful API借助Python的Flask和Django REST Framework,提供高效、易用和安全的接口设计。Flask示例展示了简洁的CRUD操作,Swagger等工具增进API文档的易用性,而HTTPS、JWT和输入验证确保安全性。Python RESTful API设计涉及效率、可用性和安全,是不断进化的Web服务接口的关键。准备好踏上这一新篇章了吗?一起探索,创造卓越!
|
4天前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【7月更文挑战第22天】在大数据领域,Python算法效率至关重要。本文深入解析时间与空间复杂度,用大O表示法衡量执行时间和存储需求。通过冒泡排序(O(n^2)时间,O(1)空间)与快速排序(平均O(n log n)时间,O(log n)空间)实例,展示Python代码实现与复杂度分析。策略包括算法适配、分治法应用及空间换取时间优化。掌握这些,可提升大数据处理能力,持续学习实践是关键。
17 1