如何用Python在笔记本电脑上分析100GB数据(下)
副问题[/!--empirenews.page--]
前文回首:怎样用Python在条记本电脑上说明100GB数据(上) 动员引擎!在本文的前一部门中,我们扼要先容了trip_distance列,在从非常值中破除它的同时,我们保存了全部小于100英里的行程值。这如故是一个相等大的临界值,尤其是思量到Yellow Taxi公司首要在曼哈顿运营。trip_distance列描写出租车从上客点到下客点的间隔。然而,人们常常可以选择差异的蹊径,在两个确切的接送所在之间有差异的间隔,譬喻为了停止交通堵塞或阶梯工程。因此,作为trip_distance列的一个对应项,让我们计较接送位置之间也许的最短间隔,我们称之为arc_distance: ![]() 对付用numpy编写的伟大表达式,vaex可以在Numba、Pythran乃至CUDA(假如你有NVIDIA GPU的话)的辅佐下行使即时编译来极大地进步你的计较速率。 弧长计较公式涉及面广,包括了大量的三角函数和算法,出格是在处理赏罚大型数据集时,计较劲大。假如表达式或函数只行使来自Numpy包的Python操纵和要领编写,Vaex将行使呆板的全部焦点并行计较它。除此之外,通过行使Pythran(或通过C++加快)(通过行使C说话)加快,可以支持及时编译,提供更好的机能。假如您可巧有一个NVIDIA图形卡,您可以通过jit_CUDA要领行使CUDA来得到更快的机能。 不管奈何,让我们来绘制行程间隔和弧间隔的漫衍: ![]() 左:行程间隔和弧间隔的较量。右:弧距<100米的行程漫衍。 风趣的是,arc_distance从未高出21英里,但出租车现实施驶的间隔也许是它的5倍。究竟上,在数百万次的出租车行程中,落客点间隔接客点只有100米(0.06英里)! 多年来的黄色出租车我们本日行使的数据集超过7年。看看在那段时刻里,人们对某些对象的乐趣是怎样演变的,这也许会很风趣。行使Vaex,我们可以快速执行焦点分组和聚合操纵。让我们来切磋7年来票价和行程是怎样演变的: ![]() 对付一个高出10亿个样本的Vaex数据帧,在条记本电脑上行使四核处理赏罚器举办8个聚合的分组操纵只需不到2分钟。 在上面的单位格块中,我们执行分组操纵,然后执行8个聚合,个中2个位于假造列上。上面的单位块在我的条记本电脑上执行不到2分钟。思量到我们行使的数据包括高出10亿个样本,这是相合时人印象深刻的。不管奈何,让我们看当作果。以下是多年来乘坐出租车的用度是怎样演变的: ![]() 均匀票价和总金额,以及搭客每年付出的小费百分比。 我们看到,跟着时刻的流逝,出租车费和小费都在上涨。此刻让我们看看出租车的均匀行驶间隔和arc_distance,出租车是以年为单元行驶的: ![]() 出租车每年的均匀行程和弧距。 上图表现,出行间隔和弧线间隔都有小幅增进,这意味着,均匀而言,人们每年的出行城市轻微远一点。 给我看看钱的方面在我们的路程竣事之前,让我们再停一站,观测一下搭客怎样付出搭车用度的。数据集包括付款范例列,因此让我们看看它包括的值: 从数据集文档中,我们可以看到此列只有6个有用条目: 1=名誉卡付出 2=现金付出 3=不收费 4=争议 5=未知 6=无效行程 因此,我们可以简朴地将payment_type列中的条目映射为整数: 此刻,我们可以按每年的数据分组,看看纽约人在出租车租赁付出方面的风俗是怎样改变的: ![]() 每年付款方法 我们看到,跟着时刻的推移,名誉卡付出逐步变得比现金付出更频仍。我们真的糊口在一个数字期间!留意,在上面的代码块中,一旦我们聚合了数据,小的Vaex数据帧可以很轻易地转换为Pandas数据帧,我们可以利便地将其转达给Seaborn。 最后,让我们通过绘制现金付出与名誉卡付出的比率来确定付出方法是取决于一天中的时刻照旧一周中的某一天。为此,我们将起首建设一个过滤器,它只选择用现金或卡付出的搭车。下一步是我最喜好的Vaex特征之一:带有选择的聚合。其他库要求对往后归并为一个付出要领的每个单独筛选的数据帧举办聚合。另一方面,行使Vaex,我们可以通过在聚合函数中提供选择来一步完成此操纵。这很是利便,只必要一次转达数据,就可以得到更好的机能。在此之后,我们只需以尺度方法绘制功效数据帧: ![]() 在一周的某一时刻和某一天,现金对卡付出的一部门。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |