今天介绍两种数据挖掘常用的编程语言:Python和R语言。人工智能大潮,各位想入门的小哥哥小姐姐了解一下?
得益于开源的生长土壤,二者都有着丰富的功能包,帮助使用者在各种应用场景下便捷高效地完成任务,而且外部包发布更新频率高,使用新技术必备。那么二者各自有什么特点呢?小编主要从以下几个方面来简单介绍:
01.
优势
Python和R都算是比较成熟的编程语言。Python发明于上世纪九十年代,是一种面向对象的解释型编程语言,最重要的一点,Python很优雅,发展至今,有一句话你应该听说过:“人生苦短我用python”。 为什么这么说呢,因为Python有以下几个特点:
开发效率高
维护成本低
标准库多
代码量少
所以说啊,时间这么宝贵,搬砖节省的时间可以做其他更有趣的事(来呀~快活啊~逃)
(图片来源于网络 侵删)
那么R语言呢?它比Python早出生十年,由S语言演化而来,与其说是编程语言,更多的人把它称之为解释性统计分析软件,软件相对于编程语言有什么特点呢?简单随意好用!R具有很强的互动性,每一行代码都可以执行输出结果到控制台,bug几率低,一切都在你的掌握之中~ 此外,R具有较强的统计分析能力以及数据可视化能力,毕竟是统计学家们更钟爱的编程语言,这方面的包很多,比如mle(极大似然估计)、鼎鼎大名的ggplot2(统计绘图工具)等。
02.
劣势
这两种语言短板呢主要还是在运行速度上,不过对于算法编写来说大多数情况还是可以胜任的,处理大数据的话实在不行还可以上分布式呢,实在实在不行关键代码改成C++可以了吧(手动捂脸)。
特别说一下,通常情况R是单线程的,所以强大的多核CPU并没有卵用,更可怕的是R会把全部数据丢进内存,这在某些情境下成为了一个性能瓶颈,虽然Linux可以把数据装载到磁盘上但是却增加了IO开销(内存和磁盘数据读写),针对R的性能优化办法也有很多(比如可以使用parallel包进行多线程编程),这个我们慢慢来分享啦~
03.
交互
Python和R并不是互相独立无关联的语言,他们可以互相引用对方的代码,比如在R中用户可以通过rPython包运行Python代码,从Python传递或获取数据,调用Python函数或者方法。而在Python中也可以使用RPy2包运行R代码,这提供了一个从Python到R的底层接口。如果你的某个功能模块不想重写,那就直接拿来用吧~
04.
使用
Python的IDLE(集成开发环境)有很多啦,比如PyCharm、IDEA等等,大牛不需要补全提示神马的可以用nodepad++ 、sublime text等纯文本编辑器。R自己的开发环境GNU界面比较简洁,如果追求更多功能的话RStudio是个不错的选择,甚至Eclipse,任君选择。
这里我们给出几个示例代码,让大家对比一下字符串逆序:
== python ==
importtensorflowastf# 我会告诉你这句是乱入的吗
defstrRevers(str):
'''
:paramstr: 输入一个字符串 abc
:return: 输出他的逆序 cba
'''
returnstr[::-1]
if__name__ =='__main__':
print(strRevers("Hello python3!"))
== R ==
paste(rev(unlist(strsplit("Hello R!", NULL))),collapse="")
都是一行KO,python看起来更优雅~
05.
资源
== python ==
官网:https://www.python.org/
找包:https://pypi.python.org/
== R ==
官网:https://www.r-project.org/
找包:https://cran.r-project.org/
下载R以及大神们开发的软件包都在这里啦,直接在包列表里面搜索关键字就能找到想要的包,比如我搜索 tensorflow:
声明:小编认知有限,欢迎拍砖~
领取专属 10元无门槛券
私享最新 技术干货