背景

在数据科学世界,Python 是一个不可忽视的存在,且有愈演愈烈之势。而其中主要的使用工具,包括 Numpy、Pandas 和 Scikit-learn 等。

Numpy

Numpy 是数值计算的基础包,内部提供了多维数组(ndarray)这样一个数据结构,用户可以很方便地在任意维度上进行数值计算。

我们举一个蒙特卡洛方法求解 Pi 的例子。这背后的原理非常简单,现在我们有个半径为1的圆和边长为2的正方形,他们的中心都在原点。现在我们生成大量的均匀分布的点,让这些点落在正方形内,通过简单的推导,我们就可以知道,Pi 的值 = 落在圆内的点的个数 / 点的总数 * 4。

这里要注意,就是随机生成的点的个数越多,结果越精确。

用 Numpy 实现如下:

import numpy as npN = 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 pdratings = 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(

当 Mars 遇上 RAPIDS:用 GPU 以并行的方式加速数据科学相关推荐

  1. 如何在 GPU 上加速数据科学

    数据科学家需要算力.无论您是用 pandas 处理一个大数据集,还是用 Numpy 在一个大矩阵上运行一些计算,您都需要一台强大的机器,以便在合理的时间内完成这项工作. 在过去的几年中,数据科学家常用 ...

  2. 「直播回顾」Mars:加速数据科学的新方式

    简介: 本文从数据科学概念.背景和现状切入,引出加速数据科学的新方式Mars,并介绍了Mars具体能解决的一些问题和背后的逻辑.哲学,同时对Mars整体数据处理流程进行了介绍. 本文分为4个部分: M ...

  3. Mars:加速数据科学的新方式

    本文分为4个部分: Mars的背景和现状 Mars解决了什么问题 Mars背后的哲学 总结与展望 一.Mars的背景和现状 说到加速数据科学的新方式,就不得不说什么是数据科学,以下是维基的定义: 数据 ...

  4. GPU—加速数据科学工作流程

    GPU-加速数据科学工作流程 GPU-ACCELERATE YOUR DATA SCIENCE WORKFLOWS 传统上,数据科学工作流程是缓慢而繁琐的,依赖于cpu来加载.过滤和操作数据,训练和部 ...

  5. 当uniapp遇上滚动穿透,巧妙的解决方式~

    上一次遇上这个滚动穿透,我是暴力解决的,当uniapp遇上可恶的滚动穿透的时候,我是怎么暴力解决的,今天学会了一个巧妙的方式,几行代码,超级方便好用,爱了爱了- 就是利用page-meta标签的pag ...

  6. c++win32项目 如何显示后再删除一个绘图_【AC学习】当乐高遇上BIM(7):绘图中的数据展示...

    介绍 正如在之前文章中提到,我们可以将数据加入3D模型以创建建筑信息建模(BIM).这些数据被嵌入进了模型的不同位置,比如项目.场地.建筑.楼层(建筑楼层).空间.区域.组件/构件.类型和系统.我们会 ...

  7. 【ArcGIS遇上Python】窗体版Python批量处理地理数据--栅格裁剪

    一.说明 之前写过用Python代码块处理地理数据的例子,如裁剪.投影.格式转换等,曾想过用C#制作个窗体,嵌入Python代码,今天无意发现Python也能用tKinter构建简单的窗体,眼前一亮, ...

  8. GPU 加速数据科学乘风破浪

    声明:版权归作者所有,如需使用请联系丽台科技. 点击"阅读原文",了解更多精彩内容

  9. 【ArcGIS遇上Python】ArcGIS Python批处理入门到精通实用教程目录

    文章目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 Python语言是目前很火热的语言,极大的促进了人工智能发展.你知道在ArcGIS中也会有python的身影吗?事实上,在Ar ...

最新文章

  1. 字符串匹配shiftand算法
  2. zabbix企业应用之监控mysql 5.6版本
  3. iOS - 解决设置导航栏按钮图片变色的问题
  4. war包部署vue_又一干货实战,spring boot2:以 War 包的形式部署
  5. tesseract linux 训练
  6. chrome谷歌浏览器截图
  7. Linux文件内容查阅
  8. 特殊权限及SUID,facl及Linux的终端
  9. python处理遥感数据(NVDI计算、辐射校正)
  10. DNN硬件加速器设计1 -- 序(MIT)
  11. 阿里巴巴设计大会PPT,出彩的设计让人惊叹
  12. “单向网闸”技术介绍-网络隔离的新型产品
  13. 未知USB设备(设备描述符请求失败)
  14. ECB(实体边界控制)模式
  15. 天黑请闭眼,我这次还能抽到杀手吗
  16. 【深度学习】实战之MNIST
  17. 服务器内置usb能否修改为外置,台式机内置的DVD刻录机可以改成外置的USB接口吗?...
  18. 【面试题集 —— No.01】常见图片格式BMP、JPG/JPEG、PNG、GIF、TIFF、SVG的区别
  19. PAT甲级 1131 - Subway Map
  20. android网络图片查看器,Android网络应用(图片查看器)

热门文章

  1. python锁机制_python基础(锁机制,守护线程,线程队列,线程池)
  2. android 图片跑马灯动画,ImageView 图片循环跑马灯的效果
  3. 服务器搭建php mysql5_Windows下php5+apache+mysql5 手工搭建笔记
  4. C语言和其他高级语言的最大的区别是什么?
  5. 鸿蒙系统手机9月11日,鸿蒙系统9月11日,将有望正式成为国际第三大手机操作生态系统...
  6. ue4集合类型_UE4项目问题集合
  7. 安卓 图像清晰度识别_螺柱焊位置识别算法初稿
  8. 树莓派python编程读取电压_《树莓派Python编程指南》——3.2 在结构体中存储值-阿里云开发者社区...
  9. 计算机网络设置中如何删除家庭组,【求助】Windows无法从该家庭组中删除你的计算机...
  10. 文本聚类分析算法_聚类分析算法综述