modin

【谎言大揭秘】Modin真的比pandas运行更快吗?

痴心易碎 提交于 2020-08-11 00:57:33
最近看了某公众号文章,推荐了所谓的神器,据说读取速度吊打pandas,可谓牛逼。 抱着学习的精神,网上搜了文章,发现了一些端倪,事实真是这样吗?来一起揭秘真相。 首先安装包 # pip install ray # pip install dask # pip install modin 安装版本 Successfully installed aiohttp-3.6.2 async-timeout-3.0.1 google-2.0.3 multidict-4.7.6 py-spy-0.3.3 ray-0.8.5 redis-3.4.1 yarl-1.4.2 Requirement already satisfied: dask in /Applications/anaconda3/lib/python3.7/site-packages (2.11 .0) Successfully installed modin -0.7.3 pandas-1.0.3 Successfully uninstalled ray -0.8.5 Successfully installed pyarrow -0.16.0 ray-0.8.4 导入包测试 import modin.pandas as pd # ImportError: Please `pip install modin[ray]` to

(数据科学学习手札86)全平台支持的pandas运算加速神器

强颜欢笑 提交于 2020-08-10 03:19:01
本文示例代码已上传至我的 Github 仓库 https://github.com/CNFeffery/DataScienceStudyNotes 1 简介   随着其功能的不断优化与扩充, pandas 已然成为数据分析领域最受欢迎的工具之一,但其仍然有着一个不容忽视的短板——难以快速处理大型数据集,这是由于 pandas 中的工作流往往是建立在单进程的基础上,使得其只能利用单个处理器核心来实现各种计算操作,这就使得 pandas 在处理百万级、千万级甚至更大数据量时,出现了明显的性能瓶颈。   本文要介绍的工具 modin 就是一个致力于在改变代码量最少的前提下,调用起多核计算资源,对 pandas 的计算过程进行并行化改造的 Python 库,并且随着其近期的一系列内容更新, modin 基于 Dask 开始对 Windows 系统同样进行了支持,使得我们只需要改变一行代码,就可以在所有平台上获得部分 pandas 功能可观的计算效率提升。 图1 2 基于modin的pandas运算加速    modin 支持 Windows 、 Linux 以及 Mac 系统,其中 Linux 与 Mac 平台版本的 modin 工作时可基于并行运算框架 Ray 和 Dask ,而 Windows 平台版本目前只支持 Dask 作为计算后端(因为 Ray 没有 Win 版本)

使用Python部署机器学习模型的10个实践经验

我的梦境 提交于 2020-08-08 07:39:59
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 有时候,作为数据科学家,我们会忘记公司付钱让我们干什么。我们首先是开发人员,然后是研究人员,然后可能是数学家。我们的首要责任是快速开发无bug的解决方案。 我们能做模型并不意味着我们就是神。它没有给我们写垃圾代码的自由。 从一开始,我就犯了很多错误,我想和大家分享一下我所看到的ML工程中最常见的技能。在我看来,这也是目前这个行业最缺乏的技能。 我称他们为“软件文盲”,因为他们中的很多人都是非计算机科学课程学习平台(Coursera)的工程师。我自己曾经就是😅 如果要在一个伟大的数据科学家和一个伟大的ML工程师之间招聘,我会选择后者。让我们开始吧。 1. 学会写抽象类 一旦你开始编写抽象类,你就会知道它能给你的代码库带来多大的清晰度。它们执行相同的方法和方法名称。如果很多人都在同一个项目上工作,每个人都会开始使用不同的方法。这可能会造成无效率的混乱。 import os from abc import ABCMeta, abstractmethod class DataProcessor(metaclass=ABCMeta): """Base processor to be used for all preparation.""" def __init__(self, input

使用Python玩转GPU

旧街凉风 提交于 2020-05-04 09:32:31
问题 随着机器学习对模型运算速度的需求越来越强烈, 一直想进行GPU编程,但一直以来这些都是c++的专利 一想到c++里的各种坑,就提不起劲来,毕竟这样来来回回填坑的投入产出,生产效率就会大打折扣 解决方案 让人欣喜的是,随着Python阵营的不断发展壮大,使用python进行GPU编程也越来越便捷了 那么具体有些什么样的包,能针对GPU做些啥事呢? 看看一些具体的代码,就能大概明白: 首先是pycuda,这是它的一个例子: mod = SourceModule(""" __global__ void multiply_them(float *dest, float *a, float *b) { const int i = threadIdx.x; dest[i] = a[i] * b[i]; } """) 由上面的代码我们可以看出,pycuda将调用gpu的c++代码做了包装,可以在python里直接使用 再看看numba: @cuda.jit def increment_by_one(an_array): pos = cuda.grid(1) if pos < an_array.size: an_array[pos] += 1 我们可以发现,numba更进一步,直接使用装饰器的办法让调用GPU的过程更简洁方便 再看看cupy: import numpy as np

Join two modin.pandas.DataFrame(s)

二次信任 提交于 2020-03-05 06:53:29
问题 I have attempted to join/merge/concat two modin.pandas DataFrames and failed. Has anyone been successful in performing this operation? This is the big data modin-project pandas implementation. The source is here: https://github.com/modin-project/modin/blob/master/modin/pandas/dataframe.py and https://github.com/modin-project/modin/blob/master/modin/pandas/concat.py Examples: import modin.pandas as pd vals = pd.DataFrame([1,2,3,4], index=['2018-01-01','2018-01-02','2018-01-03','2018-01-04'],