当 Mars 见到 RAPIDS:用 GPU 加速数据科学
我们举一个蒙特卡洛要领求解 Pi 的例子。这背后的道理很是简朴,此刻我们有个半径为1的圆和边长为2的正方形,他们的中心都在原点。此刻我们天生大量的匀称漫衍的点,让这些点落在正方形内,通过简朴的推导,我们就可以知道,Pi 的值 = 落在圆内的点的个数 / 点的总数 * 4。 这里要留意,就是随机天生的点的个数越多,功效越准确。 用 Numpy 实现如下: import numpy as np
N = 10 ** 7 # 1万万个点
data = np.random.uniform(-1, 1, size=(N, 2)) # 天生1万万个x轴和y轴都介于-1和1间的点 inside = (np.sqrt((data ** 2).sum(axis=1)) < 1).sum() # 计较到原点的间隔小于1的点的个数 pi = 4 * inside / N print('pi: %.5f' % pi) 可以看到,用 Numpy 来举办数值计较很是简朴,只要寥寥数行代码,而假如读者风俗了 Numpy 这种面相数组的思想方法之后,无论是代码的可读性照旧执行服从城市有庞大晋升。 pandas pandas 是一个强盛的数据说明和处理赏罚的器材,它个中包括了海量的 API 来辅佐用户在二维数据(DataFrame)长举办说明和处理赏罚。 pandas 中的一个焦点数据布局就是 DataFrame,它可以简朴领略成表数据,但差异的是,它在行和列上都包括索引(Index),要留意这里差异于数据库的索引的观念,它的索引可以这么领略:当从行看 DataFrame 时,我们可以把 DataFrame 当作行索引到行数据的这么一个字典,通过行索引,可以很利便地选中一行数据;列也同理。 我们拿 movielens 的数据集 作为简朴的例子,来看 pandas 是怎样行使的。这里我们用的是 Movielens 20M Dataset. import pandas as pd
ratings = pd.read_csv('ml-20m/ratings.csv') ratings.groupby('userId').agg({'rating': ['sum', 'mean', 'max', 'min']}) 通过一行简朴的 pandas.read_csv 就可以读取 CSV 数据,接着按 userId 做分组聚合,求 rating 这列在每组的总和、均匀、最大、最小值。 “食用“ pandas 的最佳方法,照旧在 Jupyter notebook 里,以交互式的方法来说明数据,这种体验会让你不由叹息:人生苦短,我用 xx(😉) scikit-learn scikit-learn 是一个 Python 呆板进修包,提供了大量呆板进修算法,用户不必要知道算法的细节,只要通过几个简朴的 high-level 接口就可以完成呆板进修使命。虽然此刻许多算法都行使深度进修,但 scikit-learn 依然能作为基本呆板进修库来串联整个流程。 我们以 K-最相近算法为例,来看看用 scikit-learn 怎样完成这个使命。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |