作者:黄天元,复旦大学博士在读,目前研究涉及文本挖掘、社交网络分析和机器学习等。希望与大家分享学习经验,推广并加深R语言在业界的应用。 R语言中文社区专栏作者

邮箱:huang.tian-yuan@qq.com

前言:

R与Python是数据科学中两门最常用的开源软件,两者有很多共同点,但是在具体应用中又不太一样。作为熟练的R用户,我一直患有“学习Python困难症”,每当我想要好好学习Python的时候,我总是发现在R中也有相应的解决办法,而且我学起来要更加便捷(R的学习曲线越到后面就是越容易)。但是,现实就是Python的用户其实要更多,从招聘的岗位描述到Kaggle机器学习讨论的资源,数量上来说Python目前都是更多的。我不希望因为少学习一门语言就关上了一扇与外界交流的大门,因此决心开始学习Python。说到底,R与Python都只是解决问题的工具而已,特点有所不同,但是没有高下之分。而我想要聚焦的热点问题,则是数据科学。其实只要抓住数据科学理论的本质,同时学习R与Python并不是难事,计算机编程语言从本质上都是互通的,更何况我们解决的还是同类型的问题。网上很多用户把R与Python对立起来,其实完全没有必要,多学一门语言真的没有这么难。因为R与Python注重的就是可重复实现的函数式编程,也就是说用户在使用大部分功能的时候,可以通过复制粘贴代码并修改少量的参数就完成统计分析和可视化。从某种角度来看,两个语言的竞争合作关系反而促进了彼此的飞速发展。言归正传,将要推出的一个系列是针对数据科学主题,比较R与Python两种语言在实现上的差异,从而揭示两种语言的特点,促进两种语言用户对彼此之间的理解和包容,并推动“双语学习”。当然也欢迎初学者用这个进行数据科学的基础学习,因为我会从最最简单的例子开始。这个系列会选用Howe, Bill. (2017).Introduction to data science. Undergraduate Topics in Computer Science.的一些Python的例子,然后我会用R进行重写,然后进行讨论和比较。工作环境是Jupyter,可以支持两种语言的操作。因为经常转换语言可能会晕头转向,所以每次的内容尽量简短一点,我们细水长流。我R稍微熟一点,Python则没有那么熟,有的地方写的不到位的,欢迎大家邮件联系我,相互交流相互促进。

包的载入(Py)

包(package),或者叫模块(module),是我们在做数据科学中不可不知道的概念。一言以蔽之,就是“站在巨人的肩膀上”。各个大牛孜孜不倦推出的算法,已经可视化实现等功能,只要在开源社区中共享,用户就能免费便捷地调用。这是开源精神的集中体现,有时候想想真是不可思议,那么多大牛如此努力地设计包免费给大家用,这是什么样的情怀?也正因为有一群有情怀的人,他们才能够自由自在地交流看法和意见,相互提高,不断完善自己的包,让人类不断向极限做出挑战。言归正传,在Python中调用包,是非常简单的。

import pandas as pd

import numpy as np

import matplotlib.pylab as plt

翻译一下 import pandas as pd ,就是,把pandas模块导入(import)进来,然后在我们的环境中,用pd来调用pandas模块里面的内容。或者这么理解,我们把pandas大神请进来了,但是在我们的组织里面,给他的代号是pd. 上面几行代码,我就把Python中最常用的三个数据科学模块加载了进来。需要注意的是,加载包之前是需要安装的,我在Jupyter中是直接再Anaconda中先配置了环境,我知道里面有pandas,numpy和matplotlib三个模块。Jupyter的操作跟别的IDE可能不同,需要注意一下。

包的载入(R)

在R语言中,最常用的载入包的方法当属library().如果没有安装的话,就用install.packages()函数进行安装

install.packages("pacman")

library(pacman)

需要注意的是,install.packages只接受字符型的包名称,而library则可以不用双引号(当然加上也是没问题的)。不过如果大家要安装一堆包的时候,就特别麻烦。我们做一个大型任务,往往都要加载一群包,这样就特别麻烦,所以建议大家用pacman这个包,下面给大家看看我的日常操作(如果没有安装这个包,请先用上面的代码安装一下)。

library(pacman)

p_load(tidyverse,data.table)

#或者直接

pacman::p_load(tidyverse,data.table)

这种操作(p_load函数),首先节省了打双引号的过程;其次,可以放多个包的名称,想放多少放多少;最后,如果这个包以前没有安装过,会自动帮你按照上。这种一步到位的操作确实舒心。

隐含的问题

其实安装和加载包,两种语言并没有什么特别大的差异。但是值得注意的一点是,其实Python在这种加载包的设计上已经引入了命名空间的概念,也就是后面我们要用pandas函数的时候,我们都需要用pd.*格式,如pd.read_csv().而R直接加载了包,是不会注意到这种问题的。为什么会有这个差别呢?因为Python用户有的时候需要做一个大的项目,经常要做很多函数,用很多模块,一旦重名,就会有很多问题。因此用的时候就要告诉大家我用的read_csv函数是pd的read.csv函数,也就是pandas里面的,不要弄错了。R很多时候只是为了解决一些探索性问题的时候,也许不需要加载过多的包,只需要加载少量专注度很高的包就可以了。但是不是说R就没有注意这个问题,R里面同样可以用命名空间调用函数,可以直接不用加载,用命名空间调用即可,我上面的代码就用到了这个概念,就是我要用pacman里面的p_load函数,我的表达就是pacman::p_load.事实上,R的包现在越来越多,重名的问题也非常严重,加载多个包完成任务的时候,函数往往因为重名互相覆盖掉,所以经常要使用这种“::”格式来指明你要用的是哪个包里面的这个名字的函数。不过很多人在用R的时候都是小项目,因为小,所以专精,上面提到的东西可能往往会忽略;Python则一开始就默认大家要进行复杂的操作,这样一来,就算实现一个及其简单的功能,有时候Python的代码也会长得出奇。

大家都在看

公众号后台回复关键字即可学习回复 爬虫 爬虫三大案例实战

回复 Python 1小时破冰入门

回复 数据挖掘 R语言入门及数据挖掘

回复 人工智能 三个月入门人工智能

回复 数据分析师 数据分析师成长之路

回复 机器学习 机器学习的商业应用

回复 数据科学 数据科学实战

回复 常用算法 常用数据挖掘算法

python数据科学导论_R与Python手牵手:数据科学导论系列(包的载入)相关推荐

  1. r语言和python爬虫谁厉害_R vs Python: 谁是最好的数据科学语言?

    作者:Lou Bajuk 翻译:黄小伟,资深数据从业者.目前就职杭州有赞数据分析团队,欢迎加入! 简历邮箱:huangxiaowei@youzan.com 从我们成立之初,RStudio就致力于几个关 ...

  2. python r语言 数据分析_R vs. Python,数据分析中谁与争锋?

    点击上方" CSDN ",选择"置顶公众号" 关键时刻,第一时间送达! 作者丨Sunil Kappal 译者丨安翔 R和Python两者谁更适合数据分析领域?在 ...

  3. python计算对数收益率_R语言金融基础:tidyquant数据整理(算术/对数收益率)

    作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R/Python),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量.机器学习.数据可视化.应用统计建模.知识 ...

  4. app小程序手机端Python爬虫实战13-fiddler如何抓取手机端数据包

    作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!

  5. python平均数 中位数函数_R和python语言如何求平均值,中位数和众数

    均值是通过取数值的总和并除以数据序列中的值的数量来计算. R语言平均值公式: mean(x, trim = 0, na.rm = FALSE, ...) #x - 是输入向量.trim - 用于从排序 ...

  6. 转载:吐血推荐,B站最强学习资源汇总(数据科学,机器学习,Python)

    转载:大数据DT 吐血推荐,B站最强学习资源汇总(数据科学,机器学习,Python) 大数据DT 4/23 The following article is from 数据派THU Author 数据 ...

  7. 适合数据科学小白的必备Python工具! ! !

    图片来源于网络: 在数据科学项目的任何阶段,Python均可提供相关工具.所有数据科学项目都包含以下3个阶段. 1.数据收集 2.数据建模 数据可视化 Python可为这三个阶段提供非常巧妙的工具. ...

  8. python怎么重新开始_人人都是数据科学家从新开始用Python学习数据科学的完整教程P3...

    上周一P2篇大家熟悉一些有用的库来学习Python.P3篇让我们学习如何用Pandas在Python中进行探索型数据分析. 为了进一步探索我们的数据,让我向您介绍另一种动物(好像Python还不够!) ...

  9. python优秀库_2017年度15个优秀的数据科学领域Python库

    由于近年来Python已经在数据科学领域引起了很大的关注,我想根据最近的经验,为数据科学家和工程师列出一些最有用的库. 由于所有的库都是开源的,我们增加了来自Github的提交,贡献者,计数和其他指标 ...

  10. 数据科学 python_为什么需要以数据科学家的身份学习Python的7大理由

    数据科学 python As a new Data Scientist, you know that your path begins with programming languages you n ...

最新文章

  1. (转)iPhone开发经典语录集锦
  2. 首个单设备模拟神经元出现 可有效解决传统计算机所面临的问题
  3. SQL注入—我是如何一步步攻破一家互联网公司的
  4. python qt designer 重定向_Python+PyQt5+QtDesigner+PyUic+PyRcc环境安装与配置
  5. .Net微服务实战之技术选型篇
  6. curl记录响应时间
  7. esxi 5.5运行linux拯救模式,启用Esxi 5.5 SSH 功能
  8. CPython 标准库源码分析 collections.Counter
  9. 豆瓣电影 知识图谱 Neo4j
  10. datagrid底部显示水平滚动_滚动穿透问题探索
  11. 关于IIS的IUSER和IWAM帐户
  12. vb还是python强大-VB已死,Python当立 | 忆云竹
  13. vs2017配置pthread.h的方法
  14. QT学习之路五(一个登陆界面)
  15. 增值税发票税控开票软件数据接口规范
  16. THREE.JS 导入STL格式的模型
  17. python 小程序——快递分拣程序
  18. 在TCGA中查找mutation突变
  19. OPNsense用户手册-用户管理
  20. 使用kubeadm快速部署一套K8S集群

热门文章

  1. LR算法(基础及核心概念)
  2. 第二章 第七课 Scratch作品:神奇的小猫(脚本块:外观)
  3. 软件工程专业的论文答辩_软件工程专业本科毕业答辩?
  4. c语言编程车牌限行,机动车尾号限行提示器
  5. 传统ADC主要指标:SFDR、SNR、SNDR、ENOB
  6. linux IIC子系统分析(七)——实例分析通过i2c-dev操作I2C设备
  7. Laravel多用户博客系统
  8. IBM AI“新药发现”项目停止市场拓展
  9. DELL台式机安装centos系统
  10. vue中的阿里巴巴矢量图标使用