如题 本人大一 数据科学专业 之前利用课余时间自学了基础的python 能过计算机二级 如今想进一步深入的学习却很迷茫 感觉有很多方向 个人目前偏向数据分析方向 但是对于一些基本的计算机知识 比如http web之类的都不了解 看一些书的时候也很懵 处于一种感觉看懂了实际上又不是很懂的状态 所以问问怎么能够更好的学习计算机 不一定必须是python 就是此刻没有什么目标了。


刚考完二级,应该继续学习《数据结构和演算法》,离散数学 ,计算机科班课程。

微积分、线性代数、概率和统计。

你才大一,不要著急,先学基础知识。


直接给你来点干货吧:

从对抗到融合,教你充分利用R+Python!

如果你从事数据科学的工作,可能会立即想到两种编程语言:R和Python。

事实上,R和Python本身是很好的工具,但通常被认为是竞争对手。今天推荐的这篇文章将会把两者进行比较,而不是将它们视为两种选择。

如果你在Google搜索栏中输入R vs Python,会立即获得大量有关一方的优势的文章。

产生这种结果的原因之一,是人们根据他们根据对编程语言使用的选择将数据科学领域划分为阵营,一个R营地和一个Python营地。而且这两个阵营往往不能和谐相处,其中的成员都相信他们的语言优于对方。因此,在某种程度上,分歧并不在于工具,而在于——

为什么不同时使用呢?

数据科学中有很少一部分人同时使用Python和R。但事实上,有很多人虽然只用一种编程语言,但他们也想要使用另一个软体的某些功能。例如,R用户有时会想要使用Python本机的面向对象能力,同样,一些Python用户也想用R中的各种统计分布。

上图是Red Monk在2018年第三季度进行的调查结果。这个调查数据来源于Stack Overflow和Github上的语言的流行度,它清楚地表明R和Python普及度都比较高。因此,没有内在的理由说明为什么我们不能在同一个项目上同时使用二者。我们的最终目标应该是更好地分析并获得更好的理解,编程语言的选择不应成为实现这一目标的障碍。

R与Python回顾

让我们来看看这些语言以及它们的优缺点。

Python

自1991年发布以来,Python一直非常受欢迎,并广泛用于数据处理。优点有:

· 面向对象的语言。

· 广泛的用途。

· 有很多扩展(功能)和强大的社区支持。

· 简单,易与理解和学习。

· 在pandas,numpy和scikit-learn这样的软体包上,Python是机器学习活动的绝佳选择。

但是,与R不同,Python没有用于统计计算的专用包。

R

R的第一个版本发布于1995年,从那时起它就成为业界最常用的数据科学工具之一。

· 几乎包含所有可以想到的统计应用程序的安装包。CRAN目前拥有超过10k的包。

· 配备了完备的?可视化库,如ggplot2。

· 能够进行独立分析。

性能良好的R不是最快的语言,并且在处理大型数据集时有时可能会内存过多。

充分利用这两种语言

我们能否同时利用R的统计能力和Python的编程能力?当我们可以轻松地在R或Python脚本中嵌入SQL代码时,为什么不将R和Python混合在一起呢?

基本上有两种方法可以在一个项目中同时使用Python和R.

在Python中使用R

· PypeR

(http://bioinfo.ihb.ac.cn/softwares/PypeR/)

PypeR提供了一种简单的方法,通过管道从Python访问R。PypeR也包含在Python的Package Index中,它提供了一种更方便的安装方式。当Python和R之间不需要频繁的互动式数据传输时,PypeR特别有用。通过管道运行R,Python程序在流程操作系统平台(包括Windows 、GNU Linux和Mac OS)的子流程式控制制下,可以获得内存控制和可移植性方面的灵活性。

· pyRserve

(https://pypi.org/project/pyRserve/)

pyRserve使用Rserve作为RPC连接网关。通过这种连接,可以在Python中用R设置变数,也可以远程调用R函数。R对象作为Python实现的类的实例公开,在许多情况下R函数作为这些对象的绑定方法。

· rpy2

(https://rpy2.bitbucket.io/)

rpy2在Python进程中运行嵌入式R。它创建了一个框架,可以将Python对象转换为R对象,将它们传递给R函数,并将R输出转换回Python对象。rpy2更常用,并且在积极开发中。

在Python中使用R的一个优点是可以在Python中轻易使用R的强大软体包,如ggplot2,tidyr,dplyr等。举一个例子,让我们看看如何在Python中使用ggplot2进行映射。

· 基本场景

https://rpy2.github.io/doc/latest/html/graphics.html#plot

· 几何

https://rpy2.github.io/doc/latest/html/graphics.html#geometry

在R中使用Python

我们可以使用下面其中一种替代方法在Python中运行R脚本:

· rJython

(https://r-forge.r-project.org/projects/rjython/)

该包通过Jython实现了Python的介面。它旨在让其他包能够与R一起嵌入python代码。

· rPython

(https://cran.r-project.org/web/packages/rPython/index.html)

rPython又是一个允许R调用Python的包。它使得在R中运行Python代码,进行函数调用,分配和检索变数等成为可能。

· SnakeCharmR

(https://github.com/asieira/SnakeCharmR)

SnakeCharmR是rPython的现代版本。它是rPython的一个分支,它用了jsonlite并且比rPython有很多进步之处。

· PythonInR

(https://bitbucket.org/Floooo/pythoninr/)

PythonInR通过提供从内部与Python交互的函数,使得从R内部访问Python变得非常容易。

· reticulate

(https://github.com/rstudio/reticulate)

网状软体包为Python和R之间的互操作性提供了一套全面的工具。在上述所有选择中,这个是最广泛使用的,更是因为它正在被Rstudio积极开发。Reticulate在R会话中嵌入Python会话,实现无缝、高性能的互操作性。该软体包使你能够将Python代码网格化为R,从而创建一个将两种语言编织在一起的新项目。

网状包提供以下设施:

· 以各种方式从R调用Python,包括R Markdown,获取Python脚本,导入Python模块以及在R会话中以交互方式使用Python

· R和Python对象之间的转换(例如,R和Pandas数据帧之间,或R矩阵和NumPy数组之间)。

· 灵活地绑定到不同版本的Python,包括虚拟环境和Conda环境。

结论

R和Python都是非常强大的语言,其中任何一种语言都足以执行数据分析任务。但是,对于这两者来说肯定存在一些优缺点,如果我们能够利用两者的优势,一定可以做得更好。无论如何,对二者进行充分的了解能够让我们在更多的环境中进行工作。

————————————————————————————————

更多AI科技资讯干货,欢迎关注【读芯术】哦~

发布于 2019-04-02继续浏览内容知乎发现更大的世界打开Chrome继续digoldsdigolds想学习编程并成功面试?不妨试试www.digolds.cn

到下面这个网站系统地学习Python

如何学习Python 3.6.x 系列课程 - Digolds?

www.digolds.cn


到下面这个网站系统地学习Python

如何学习Python 3.6.x 系列课程 - Digolds?

www.digolds.cn


思考

你既然能问出这样的问题,就说明你缺的不是学习的目标,缺的更不是学习资源,缺的是对未来的认知,视野太狭隘

分析

首先来了解一下 Python,Python的标准库和第三方库强大到你无法想像,无论你想从事任何方向的技术编程,你几乎都能找到相应的库支持

1、爬虫—— 爬虫领域,Python是霸主,ScrapyRequestBeautifuSoapurllib等,想爬啥就爬啥

2、WEB开发—— 最火的Django, 支持非同步高并发的Tornado,短小精悍的flask

3、自动化运维—— 不用评说Python头牌

4、金融分析—— 高频交易、金融数据分析、量化交易是使用最多的

5、云计算—— 知名的云计算框架OpenStack是Python目前最成熟的商业应用

6、科学运算—— Python很早就用于科学计算了,随著 NumPy, SciPy, Matplotlib 数据处理库的发展,使得Python越来越适合于做科学计算、绘制高质量的2D和3D图像。Matlab必然要成为过去式

7、人工智慧——Facebook 开源了 PyTorch , Google 开源了TensorFlow就看他们两个谁当大哥,无论谁当大哥开发语言都是Python

8、游戏开发——在网路游戏开发中Python也有很多应用。Python开发加 C/C++ 扩展。可以大量缩减代码量

9、网路编程—— 支持高并发的Twisted网路框架, python3引入的asyncio使非同步编程变的非常简单

预测

在未来python的使用量赶超java是可预见的,Python WEB 很难干败 java web,但是取代PHP是有可能的,我很看好

建议

Python在云计算、爬虫、自动化运维、金融分析领域已经是头牌

其实学什么取决于你自己,再回头看一下,我介绍 Python 相关领域的排序,发现什么了吗?

不要被那么多领域绕花了眼,也不要只听被人说什么人工智慧是未来,大数据有钱途,从上至下,对哪个感兴趣,学就行了,基本是按应用场景的广度,和难易程度排下来的

随便挑一个别人给你指出的学习攻略,你基本需要穷其一生去学习,先想找到自己的兴趣点、多对未来进行思考、多扩展自己的眼界视角

现在你既然入了Python的门,而且还是大一,不知道你的学历背景是什么样的

个人建议:如果是普通211一下,就不要犹豫先从 python web、python爬虫入手做项目,python爬虫推荐 静觅丨崔庆才的个人博客,Python web推荐 静觅 | StormSha 的个人博客 都是实战派,直接实战,拿出作品,走出学校不需要担心工作的问题

给你看一个网站,http://www.ailab.cn/ ,你在百度搜索人工智慧,这个网站就会映入眼帘,这个东西完全可以靠 python 爬虫加python web干起来,让你躺在家里赚钱。有的时候搞技术的其实缺的是对钱机的敏锐度,走爬虫加WEB路线只要你肯动脑子就有钱机

如果是名牌学校,建议还是学人工智慧、科学运算,数据科学需要的其实不是编程技术而是数据科学

随便挑出一个被人推荐的学习路线或者学习图谱,感觉都需要穷其一生去学习,因为python的东西太多了,有哪个必要都学吗?其实很多时候是需求推动学习,当你走向工作岗位你就知道什么是学习了,在学校按部就班的走那是素质教育,不是学习。就像我最初学习 Python 时学的爬虫比较多,但是工作后由于工作需求,直接看著文档,打开Google就开是做起了 WEB 项目

总结

先了解 Python 的现状、发展、未来,再思考自己的现状、发展、未来

做出决定,无论学习哪个方向目标都是要有一个拿的出手的作品,不要照本宣科,那样只能是自我陶醉

只要定了学习方向,学习资源网上一抓一大把,如果不定方向你会发现你的学习资源越来越多了,但是都被束之高阁。定了方向也不代表你未来的工作只能是这样,python是相当泛化的,因为它就像一个工具语言一样,会了一个方向,再去研究其它东西会容易很多。


python高级用法_iOS-创客学院?

www.makeru.com.cn图标

建议你可以看一下


找份详细的视频看,看完再看书


推荐阅读:
相关文章