2020-12-29 15:08:26 阅读(148)
对于想要开始数据科学的新手来说,选择学习Python或R语言是一个难题。本文比较了这两种语言,希望能帮助你做出选择。我是德勤数据科学家的主管,多年来我一直在使用Python和R语言,并与Python社区密切合作了15年。这篇文章是我个人对这两种语言的看法。Studio首席数据科学家HtleyWickham认为,最好的选择是让两种语言合作,而不是选择两者中的一种。因此,这也是我提到的第三个选择,我将在文本的最后部分讨论。如何比较R和Python有以下几点值得比较:历史:R和Python的发展历史明显不同,有交错的部分。·用户群:包含许多复杂的社会学人类学因素。·性能:详细比较,为什么难以比较。·第三方支持:模块、代码库、可视化、存储、组织和开发环境。·用例:根据具体任务和工作类型有不同的选择。·能否同时使用:在Python中使用R,在R中使用Python。·预测:内部测试。·企业和个人偏好:揭示最终答案。ABC语言简史:ABC语言–>Python问世(GuidovanRosum创建于1989年)–>Python2(2000年)–>Fortan语言Python3(2008年)–>S语言(贝尔实验室)–>R语言问世(Rossihaka和RobertGentleman于1991年创立)–>R1.0.0(2000年)–>R3.0.2(2013年)用户群在比较Python和R的用户群时,注:只有50%Python用户同时使用R。假设所有使用R语言的程序员都使用R来研究相关的“科学和数字”。假设使用R语言的程序员使用R进行相关的“科学和数字”研究。可以确定,这种统计分布是真实的,无论程序员的水平如何。回到第二个问题,有哪些用户群体。整个科学和数字社区包含几个子群体,其中有一些重叠。使用Python或R语言的子群体:深度学习、机器学习、高级分析、预测分析、统计、探索和数据分析、学术研究、大量计算研究。虽然几乎每个领域都为特定的群体服务,但R语言在统计和探索方面更为常见。与Python相比,R语言在不久前的数据探索中花费的时间更少,使用Python需要时间来安装。所有这些都被称为JupyterNotebooks和Anaconda的颠覆性技术所改变。JupyterNotebook:提高了在浏览器中编写Python和R代码的能力;Anaconda:Python和R可以轻松安装和管理。现在,您可以在友好的环境中启动和运行Python或R,并提供开箱即用的报告和分析。这两种技术消除了完成任务和选择语言之间的障碍。Python现在可以独立于平台包装,并提供快速简单的分析。影响社区语言选择的另一个因素是“开源”。不仅是开源库,还有合作社区对开源的影响。讽刺的是,Tensorflow、GNUScientificlibrary等开源软件(分别是Apache和GPL)都与Python和R绑定。虽然使用R语言的用户很多,但使用Python的用户中有很多纯Python支持者。另一方面,更多的企业使用R语言,尤其是那些有统计背景的企业。最后,Github对Python的支持更多,关于社区和合作。如果你看到最近流行的Python包,你会发现Tensorflow等项目有3.5万多个用户收藏。但是看到R的热门软件包,Shiny、Stan等收藏量低于2000。比较性能并不容易。原因是需要测试的指标和情况太多。在任何特定的硬件上都很难测试。有些操作是通过一种语言优化而不是另一种语言优化的。在此之前,让我们想想如何比较Python和R。你真的想在R语言中写很多循环吗?毕竟,这两种语言的设计意图是不同的。{"cells":[ { "cell_type":"code", "execution_count":1, "metadata":{}, "outputs":[], "source":[ "importnumpyasnp\n", "%load_extrpy2.ipython" ] }, { "cell_type":"code", "execution_count":2, "metadata":{}, "outputs":[], "source":[ "defdo_loop(u1):\n", "\n", " #Initialize`usq`\n", " usq={}\n", "\n", " foriinrange(100):\n", " #i-thelementof`u1`squaredinto`i`-thpositionof`usq`\n", " usq[i]=u1[i]*u1[i]\n" ] }, { "cell_type":"code", "execution_count":3, "metadata":{}, "outputs":[], "source":[ "%%R\n", "do_loop<-function(u1){\n", " \n", " #Initialize`usq`\n", " usq<-0\n", "\n", " for(iin1:100){\n", " #i-thelementof`u1`squaredinto`i`-thpositionof`usq`\n", " usq[i]<-u1[i]*u1[i]\n", " }\n", "\n", "}" ] }, { "cell_type":"code", "execution_count":4, "metadata":{}, "outputs":[ { "name":"stdout", "output_type":"stream", "text":[ "1.58ms±42.8µsperloop(mean±std.dev.of7runs,十万lopseach\n" ] } ], "source":[ "%%timeit-n1000\n", "%%R\n", "u1<-rnorm(100)\n", "do_loop(u1)" ] }, { "cell_type":"code", "execution_count":5, "metadata":{}, "outputs":[ { "name":"stdout", "output_type":"stream", "text":[ "36.9µs±5.99µsperloop(mean±std.dev.of7runs,十万lopseach\n" ] } ], "source":[ "%%timeit-n1000\n", "u1 =np.random.randn(100)\n", "do_loop(u1)" ] }],"metadata":{ "kernelspec":{ "display_name":"Python3", "language":"python", "name":"python3" }, "language_info":{ "codemirror_mode":{ "name":"ipython", "version":3 }, "file_extension":".py", "mimetype":"text/x-python", "name":"python", "nbconvert_exporter":"python", "pygments_lexer":"ipython3", "ver
以上就是关于如何比较Python和R语言?的相关介绍,更多如何比较Python和R语言?相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对如何比较Python和R语言?有更深的了解和认识。
推荐阅读
最新文章
猜你喜欢以下内容:
一 客户顾问-张三 一