R和Python,哪个对数据科学初学者更友好?.doc

上传人:白大夫 文档编号:3272816 上传时间:2019-08-07 格式:DOC 页数:3 大小:18.50KB
返回 下载 相关 举报
R和Python,哪个对数据科学初学者更友好?.doc_第1页
第1页 / 共3页
亲,该文档总共3页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《R和Python,哪个对数据科学初学者更友好?.doc》由会员分享,可在线阅读,更多相关《R和Python,哪个对数据科学初学者更友好?.doc(3页珍藏版)》请在三一文库上搜索。

1、R和Python,哪个对数据科学初学者更友好?编者按:数据科学家Alan Marazzi这篇讨论R和Python哪个对数据科学初学者更友好的文章有些偏向R语言,结论仅供参考。不过,它出色地展示了R语言在数据问题上犀利的表达力。对初学者而言,从高层抽象(由R语言中的原生结构或Numpy之类的Python第三方库提供)入手也确实更加便利。这不是你通常在网上看到的那类争论R和Python哪个好的帖子。事实上,我根本不想讨论到底哪个好。我只想说明,想要入门数据科学的学习者,从R开始更合适。向量什么是向量?如果你知道矩阵,那你就知道向量。向量可以看成矩阵的行或列,也就是由数字组成的一维“列表”。通常向量

2、用作数据表的列,因为我们确信同一列内的数据类型相同。浮点数、整数、字符串、类别,等等,向量中的元素总是属于同一类型。这很重要,因为我们可以利用这一点加速和简化代码:解释器只需检查第一项记录的类型。你也许已经知道,向量是R的原生结构,事实上,R中标量也是向量(一维向量)。vec 机器学习时,常常需要处理表格形式的数据,或者,从更底层的角度来说,向量的序列。如果我想将向量中的每项记录乘2,在R中我可以非常自然地做到这一点:vec * 21 1068Python中,向量不是原生结构,不过我们可以使用列表存储向量。所以让我们在Python 3中尝试相同的操作(你需要操心到底用Python 2还是Pyt

3、hon 3是另一个问题): 5, 3, 4 * 25, 3, 4, 5, 3, 4搞什么在Python中要得到同样的结果,你需要使用for循环: for num in 5, 3, 4:. num * 2.1068你可能需要把结果存储到另一个列表中,所以你需要首先初始化一个空列表来存放结果,然后启动循环,在每个迭代中添加结果: res = for num in 5, 3, 4:. res.append(num * 2). print(res)10, 6, 8在R中,你只需:vec import random # 需要引入random模块 def random_walk(n):. position

4、 = 0# 初始化位置变量. walk = position # 初始化列表. for i in range(n):. position += 2*random.randint(0, 1)-1# 更新位置值. walk.append(position) # 附加结果至行走列表. return walk.如果对象非常大,上面的代码会变得很慢,我们可以使用itertools模块改善性能: from itertools import accumulate import random def random_walk_faster(n=1000):. steps = random.sample(1, -

5、1*n, n). return list(accumulate(steps).不过,这还是没有向量化。它不过是更高效的循环而已。要做到完全向量化,我们需要使用NumPy: import numpy as np def random_walk_fastest(n=1000):. steps = 2*np.random.randint(0, 2, size=n) - 1. return np.cumsum(steps).换成R语言:rw - cumsum(sample(c(-1, 1), 1000, TRUE)无需引入什么模块,无需额外定义什么函数或方法,一行搞定。(译者注:Python确实需要引入NumPy,但其实也不用额外定义函数,np.cumsum(np.random.randint(.))。结语如果你想从事和数据打交道的工作,或者想要教别人如何处理数据,可以从R开始。熟练使用R之后,再开始学Python比较好。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1