# 数据科学入门丨选Python还是R

· 历史：

R和Python的发展历史明显不同，同时有交错的部分。

· 用户群体：

· 性能：

· 第三方支持：

· 用例：

· 是否能同时使用：

· 预测：

· 企业和个人偏好：

ABC语言 - > Python 问世(1989年由Guido van Rossum创立) - > Python 2(2000年) - > Python 3(2008年)

Fortan语言 - > S语言(贝尔实验室) - > R语言问世(1991年由Ross Ihaka和Robert Gentleman创立) - > R 1.0.0(2000年) - > R 3.0.2(2013年)

· 深度学习

· 机器学习

· 高级分析

· 预测分析

· 统计

· 探索和数据分析

· 学术科研

· 大量计算研究领域

Jupyter Notebook：增加了在浏览器中编写Python和R代码的能力;

Anaconda：能够轻松安装和管理Python和R。

```{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"outputs": [],
"source": [
"import numpy as np\n",
]
},
{
"cell_type": "code",
"execution_count": 2,
"outputs": [],
"source": [
"def do_loop(u1):\n",
"\n",
"    # Initialize `usq`\n",
"    usq = {}\n",
"\n",
"    for i in range(100):\n",
"      # i-th element of `u1` squared into `i`-th position of `usq`\n",
"      usq[i] = u1[i] * u1[i]\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"outputs": [],
"source": [
"%%R\n",
"do_loop <- function(u1) {\n",
"    \n",
"    # Initialize `usq`\n",
"    usq <- 0\n",
"\n",
"    for(i in 1:100) {\n",
"      # i-th element of `u1` squared into `i`-th position of `usq`\n",
"      usq[i] <- u1[i]*u1[i]\n",
"    }\n",
"\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 4,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.58 ms ± 42.8 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)\n"
]
}
],
"source": [
"%%timeit -n 1000\n",
"%%R\n",
"u1 <- rnorm(100)\n",
"do_loop(u1)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"36.9 µs ± 5.99 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)\n"
]
}
],
"source": [
"%%timeit -n 1000\n",
"u1  = np.random.randn(100)\n",
"do_loop(u1)"
]
}
],
"kernelspec": {
"display_name": "Python 3",
"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",
"version": "3.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}```

Python为0.000037秒，R为0.00158秒

Python有PyPI，R语言有CRAN，两者都有Anaconda。

CRAN使用内置的`install.packages`命令。目前，CRAN上有大约1.2万个包。其中超过1/2的包都能用于数据科学。

PyPi中包的数量超过前者的10倍，约有14.1万个包。专门用于科学工程的有3700个。其中有些也可以用于科学，但没有被标记。

http://nbviewer.jupyter.org/gist/brianray/4ce15234e6ac2975b335c8d90a4b6882

matplotlib是由John D. Hunter编写的，他是我在Python社区中最敬重的人之一，他也是教会我使用Python的人。

Matplotlib虽然不易学习但能进行定制和扩展。ggplot难以进行定制，有些人认为它更难学。

· 公司或组织允许；

· 两种都能在你的编程环境中轻松设置和维护；

· 你的代码不需要进入另一个系统；

· 不会给合作的人带来麻烦和困扰。

· Python提供给R的包：如rpy2、pyRserve、Rpython等；

· R也有相对的包：rPython、PythonInR、reticulate、rJython，SnakeCharmR、XRPython

· 使用Jupyter，同时使用两者，例子如下：

http://nbviewer.jupyter.org/gist/brianray/734bd54f468d9a6db9171b2cfc98405a

Kaggle上有人对开发者使用R还是Python写了一个Kernel。他根据数据发现以下有趣的结果：

· 如果你打算明年转向Linux，则更可能是Python用户；

· 如果你研究统计数据，则更可能使用R；如果研究计算机科学，则更可能使用Python；

· 如果你还年轻(18-24岁)，则更可能是Python用户；

· 如果你参加编程比赛，则更可能是Python用户；

· 如果你明年想使用Android，则更可能是Python用户；

· 如果你想在明年学习SQL，则更可能是R用户；

· 如果你使用MS office，则更可能是R用户；

· 如果你想在明年使用Rasperry Pi，则更可能是Python用户；

· 如果你是全日制学生，则更可能是Python用户；

· 如果你使用的敏捷方法(Agile methodology)，则更可能是Python用户；

· 如果对待人工智能，比起兴奋你更持担心态度，则更可能是R用户。

https://blog.usejournal.com/python-vs-and-r-for-data-science-833b48ccc91d

0 条评论

• ### Python能用来做什么？以下是Python的三大主要用途

如果你想学Python，或者你刚开始学习Python，那么你可能会问：“我能用Python做什么？”

• ### 深入对比数据科学工具箱：Python和R之争

概述 在真实的数据科学世界里，我们会有两个极端，一个是业务，一个是工程。偏向业务的数据科学被称为数据分析（Data Analysis），也就是A型数据科学。偏向...

• ### 收藏 | 细数 Python 三十年技术演变史

作者 | 宋天龙，大数据技术专家，触脉咨询合伙人兼副总裁，前Webtrekk中国区技术和咨询负责人（Webtrekk，德国的在线数据分析服务提供商）。擅长数据挖...

• ### Python高居顶级编程语言交互排行榜第一，你要做些什么呢？

关键字全网搜索最新排名 【机器学习算法】：排名第一 【机器学习】：排名第二 【Python】：排名第三 【算法】：排名第四 IEEE Spectrum 发布了2...

• ### Python能用来做什么？以下是Python的三大主要用途

如果你想学Python，或者你刚开始学习Python，那么你可能会问：“我能用Python做什么？”

• ### 厉害！这还是我认识的Python吗！

Python 可用的地方非常多。无论是从入门级选手到专业级数据挖掘、科学计算、图像处理、人工智能，Python 都可以胜任。或许是因为这种万能属性，周围好更多的...

• ### 第一章 初识Python

python的创始人为吉多·范罗苏姆（Guido van Rossum）荷兰人，1989年的圣诞节期间，吉多·范罗苏姆为了在阿姆斯特丹打发时间，决心开发一个新的...

• ### Python 2 正式退休，是时候拥抱 Python 3 了！

Python 2.7 于 2020 年 1 月 1 日正式停止维护，这也意味着 Python 2 完全退休，现在是 Python 3 的时代。

• ### 学透着13个爬虫，这天下将没有你爬不到的

这把火已经烧到了程序员的圈子外，从小学生到职场老司机，都开始学习这一门新的语言，门槛低、零基础、操作骚...再也没有什么能阻挡Python晋升网红。

• ### #1 初识Python

要说现在最时髦的编程语言是什么，那么一定是Python无疑了。让我们来一起来领略其风采吧！

CDA数据分析师新媒体运营