python和r语言哪个好学(python和r学什么好)
【温馨提示】本文共有3104个字,预计阅读完需要8分钟,请仔细阅读哦!
数据科学用 R 还是 Python 好?专业教授多角度分析,下面一起来看看本站小编开源中国OSC给大家精心整理的答案,希望对您有帮助 Norm Matloff 是加州大学戴维斯分校的计算机科学教授,他针对数据科学界常年争论的要点,作了一篇关于 R 和 Python 的对比分析。 在分析开始之前,Matloff 先抛出自己可能带有的潜在偏见:他写过 4 本与 R 相关的书,在 useR! 和其他 R 的会议上做过演讲,并且目前担任 R 期刊的主编。但同时他也用 Python 敲过多年代码。Matloff 希望自己的分析能够被认为是公平且有帮助的。 接着,这位专业的计算机科学家和统计学家从以下几方面对 R 和 Python 做出了对比: 优雅 Python 明显胜出。 当然这是主观的。但是在不同编程语言的对比之下,Python 大大减少了括号的使用: vs. Python 很时尚! 学习曲线 R 在这一场赢得巨大胜利。 作为一名教育工作者,Matloff 对这一点尤其感兴趣。 若使用 Python 做数据科学,必须学习很多不在基础 Python 中的材料,例如 NumPy、Pandas 和 matplotlib。 相比之下,矩阵类型和基本图形已经内置于基础 R,新手可以在几分钟内完成简单的数据分析。 即使对于精通系统的人来说,Python 库也很难配置,而大多数 R 软件包都是开箱即用的。 可用的数据科学库 R 轻微取胜。 CRAN 拥有超过 14,000 个包。PyPI 的包则多于 183,000 个,不过在数据科学方面看起来似乎比较薄弱。 Matloff 举了一个例子:他曾经需要代码来快速计算给定数据点的最近相邻,在 CRAN 中能够立即找到不止一个包来执行此操作。而在 PyPi 中粗略搜索后空手而归。 他还指出在 PyPI 中进行以下搜索没有任何结果:EM 算法;对数线性模型;泊松回归;工具变量;空间数据;整体错误率等等。 “这并不是说这些东西不存在 Python 库。只是在 PyPI 中不容易找到它们,而在 CRAN 中很容易找到。” 事实上,R 具有规范的封装结构是一个很大的优势。 安装新软件包时,确切地知道会出现什么。 类似地,R 的泛型函数对于 R 来说也是一大的优势。当使用新的包时,人们知道自己可以使用 print()、plot()、summary() 等,所有这些都构成了包的“通用语言”。 机器学习 Python 略微胜出。 R vs. Python 辩论主要是统计与 CS 的争论,由于神经网络的大多数研究来自 CS,因此 NN(Neural Network,神经网络) 的可用软件主要是 Python。 RStudio 在开发 Keras 实现方面做了一些出色的工作,但目前为止,R 在这个领域受到限制。 另一方面,随机森林研究(random forest research)主要由统计界进行,在这个领域 R 更具优越性。R 还具有优异的梯度增强封装。 这里 Python 略胜一筹,因为对很多人来说,机器学习就意味着神经网络。 统计正确性 R 赢得大胜。 Matloff 表示 “R 是由统计学家为统计学家编写的”。他发现“那些主要使用 Python 进行机器学习的人往往对其中的统计问题缺乏了解,甚至不屑一顾”。 并行计算 双方打成平手。 R 和 Python 的基础版本都不能很好地支持多核计算。 Python 中的线程很适合 I/O,但由于臭名昭著的 Global Interpreter Lock,使用它们进行多核计算是不可能的。 Python 的多处理软件包和 R 的“并行”软件包都不是好的解决方法。 支持集群计算的外部库在两种语言中都 OK。 目前,Python 具有更好的 GPU 接口。 C/C++ 接口和性能增强 R 略胜一筹。 虽然有 SWIG 等工具可以将 Python 连接到 C/C++,但目前没有像 R 的 Rcpp 那样强大的功能。Pybind11 软件包正在开发中。 此外,R 的新 ALTREP 理念在提高性能和可用性方面具有巨大潜力。 另一方面,Python 的 Cython 和 PyPy 变体在某些情况下可以预先消除对显式 C/C++ 接口的需求。确实有人会说 Cython 是一个 C/C++ 接口。 面向对象,元编程 依然是 R 略胜一筹。 举例来说,尽管函数在两种语言中都可作为对象,但 R 比 Python 更进一步。Matloff 说每当自己使用 Python 工作时,都会因为无法直接将函数输入到终端或编辑它而感到恼火,但在 R 上就可以这样做。 Python 只有一个 OOP 范例。在 R 中,可以选择几种(S3、S4、R6 等),不过也有些人可能会争论这是否是一件好事。 R 有神奇的元编程特性(产生代码的代码),但是大多数 CS 人都没有意识到它。 语言统一性 R 损失巨大。 Python 目前正在从 2.7 版过渡到 3.x 版,这会导致一些中断,但不至于太复杂。 相比之下,R 正迅速转变为两种相互无法理解的语言,即普通的 R 和 Tidyverse。 作为一名经验丰富的 R 程序员,Matloff 表示自己无法阅读 Tidy 代码,因为它调用了许多他不知道的 Tidyverse 函数。也有网友评论说“人们可以在对 R 没什么了解的情况下,在 Tidyverse 中进行编码”。 关联的数据结构 Python 获胜。 经典计算机科学数据结构,例如二叉树,很容易在 Python 中实现。它不是基础 R 的一部分,但可以以各种方式完成,例如数据结构包,它包含了使用广泛的 Boost C++ 库。 在线帮助 R 大获胜。 首先,R 的基本 help() 函数比 Python 的信息量大得多。它很好地补充了 example()。最重要的是,在 R 包中能够编写 vignette(通过函数 vignette() 返回,一般是 PDF 格式的实用介绍性文章)使 R 在这方面成为了一个不折不扣的赢家。 R/Python 互操作性 RStudio 开发的 reticulate 包能够在 R 上运行 Python,可以作为 Python 和 R 之间的桥梁,适用于纯计算。 但它并没有解决 Python 中出现的棘手问题,例如虚拟环境等。 目前,Matloff 不建议编写混合的 Python/R 代码。 分析了这么多,最后当然还是要根据实际需求来进行选择,毕竟语言之间没有孰优孰劣。 阅读原文:「链接」python和r学什么好1
python和r学什么好2
大数据文摘作品
编译:大茜、钱天培
R还是Python?
真是个千古难题!
如果你主要从事数据分析、统计建模和可视化,R大概是你的不二之选。但如果你还想来搞点深度学习,整个自然语言处理,那你可还真得用Python。
如果你处于交叉领域,很可能就需要两种语言切换。后果是,写个for loop还出bug真的是家常便饭。报警!
面对这种困境的绝不止你一个人!最近的KDnuggets Analytics的软件调查中,Python和R位居数据科学和机器学习软件的前两名。
如果你真的想提高你在数据科学领域的能力,这两种语言你确实都应该学习。
不过现在好消息来了!
RStudio开发了一个名为reticulate的包。通过安装包,你现在可以在R上运行Python的安装包和函数了~
今天文摘菌就来教教你咋用这个reticulate包。
安装并加载reticulate包
运行下面的命令来安装这个包、并导入到您的系统中。
# 安装reticulate包 install.packages("reticulate") # 加载reticulate包 library(reticulate)检查您的系统是否安装过Python
py_available()返回值为TRUE或FALSE。如果返回的是TRUE,那恭喜你,您的系统已经有Python啦。FALSE的话就得先去装一下Python了。
在R中导入一个python模块
您可以使用函数import()来导入特定的包或模块。
os <- import(“os”) os$getcwd()上面的命令返回工作目录。
[1]"C:\\Users\\DELL\\Documents"
您可以使用os包中的listdir()函数来查看工作目录中的所有文件。
os$listdir()安装Python包
第一步:创建新的工作环境;
conda_create(“r-reticulate”)第二步:在conda环境下安装“r-reticulate”和“numpy”;
conda_install(“r-reticulate”,“numpy”)如果“numpy”已经安装,您不必再次安装这个包。上面的代码只是给个例子而已。
第三步:加载包。
numpy <- import(“numpy”)使用numpy数组
首先建立一个简单的numpy数组
y <- array(1:4, c(2, 2)) x <- numpy$array(y)[,1] [,2]
[1,] 1 3
[2,] 2 4
将数组进行转置
numpy$transpose(x)[,1] [,2]
[1,] 1 2
[2,] 3 4
求特征根和特征向量
numpy$linalg$eig(x)一些数学函数
numpy$sqrt(x) numpy$exp(x)交互地使用Python
您可以在R中创建交互式Python控制台。您在Python中创建的对象可在R中使用(反之亦然)。通过使用repl_python()函数,可以使Python和R交互。首先,下载以下程序中使用的数据集:
repl_python() # 加载“panda”数据集 import pandas as pd # 载入数据集 travel = pd.read_excel(“AIR.xlsx”) # 显示数据集的行列数 travel.shape # 随机选取数据集中的行数 travel.sample(n = 10) # 按某一标志分组 travel.groupby(“Year”).AIR.mean() # 筛选数据个案 t = travel.loc[(travel.Month >= 6) & (travel.Year >= 1955),:] # 回到R exit注意:您需要键入“exit”来返回到R会话
怎样从R中获取在python中创建的对象
你可以在利用py object获取python里的对象。
summary(py$t)在这种情况下,我会用R的summary()函数并访问在python中创建的数据集T。此外,您可以使用ggplot2软件包绘制折线图。
#利用ggplot2绘制线图 library(ggplot2) ggplot(py$t, aes(AIR, Year)) + geom_line()怎样从Python中获取在R中创建的对象
您可以使用r object来解决这个问题。
先在R中创建一个对象:
mydata = head(cars, n=15)在Python REPL中调用之前在R中所创建的对象:
repl_python() import pandas as pd r.mydata.describe() pd.isnull(r.mydata.speed) exit使用sklearn包构建Logistic回归模型
sklearn软件包是python中最受欢迎的机器学习软件包之一,它支持各种统计和机器学习的算法。
repl_python() # 加载包 from sklearn import datasets from sklearn.linear_model import LogisticRegression # 加载数据库 iris = datasets.load_iris() # 建立logit模型 model = LogisticRegression() model.fit(iris.data, iris.target) # 进行预测 actual = iris.target predicted = model.predict(iris.data) #模型性能对比矩阵 print(metrics.classification_report(actual, predicted)) print(metrics.confusion_matrix(actual, predicted))其他有用的函数
查看python的配置
运行py_config()命令来查看系统中安装的R的版本。它还能显示anaconda和numpy的详细信息。
py_config()检查某个包是否安装
可以用以下命令来检查“pandas”是否安装:
py_module_available(“pandas”)原文链接:
https://www.r-bloggers.com/run-python-from-r/
python和r学什么好3
Tiobe发布今年7月世界编程语言排名,语言R受欢迎程度指数中已上升至第8位,仅次于JavaScript,从去年7月的第20位上升至如今第8位。
今年5月,Tiobe排名中R是三年来首次跌出前20名时,Tiobe推测该语言可能成为统计编程整合的受害者,并且该领域的更多开发人员倾向于使用Python。
Tiobe研究人员当时说:“可能原因是,如今,统计编程正在从大学到工业界找到一种方式,而Python被业界越来越接受。”
Tiobe Software的首席执行官Paul Jansen目前认为R和Python受益于大学的需求以及全球为COVID-19寻找疫苗的努力。
他还继续说:“大学和研究机构采用Python和R进行统计分析,为了找到一种针对COVID-19病毒的疫苗,需要进行大量的统计和数据挖掘,结果,易于学习和使用的统计编程语言现在开始流行。”
根据开发人员分析师RedMonk,他认为R永远不会成为十大语言之一,因为它针对一定受欢迎的开发人员,只是在专业领域发展,很容易受到领域限制。
我们查找到2019年GitHub的十大统计列表项目,没有找到R语言,GitHub的2019年十大列表排名:第一javaScript,其次是Python,Java,PHP,C#,C ++,TypeScript,Shell,C和Ruby。
这次R在Tiobe排名的反弹让人惊讶,目前Tiobe表示也没有找到原因。
除了R的排名向上移动之外,Tiobe的7月索引在顶级语言的流行方面并没有显示多少变化。
降序排列的前10位是C,Java,Python,C ++,C#,Visual Basic,JavaScript,R,PHP和Swift。
R已攀升至第8位,仅次于JavaScript
内容更新时间(UpDate): 2023年03月06日 星期一
版权保护: 【本文标题和链接】python和r语言哪个好学(python和r学什么好) http://www.youmengdaxiazuofa.net/longxia8/78765.html
- 全部评论(0)