与朱莉娅的第二个约会
几个月前,我写了一篇关于Julia分析语言的非常正面的博客,充分展示了其MIT的血统,可理解的结构以及与R和Python的数据科学互操作性。我通过每天的股指值的瘦数据集展示了Julia的一些功能,并展示了它与R强大的ggplot图形子系统的协作。
这次,我决定针对一个更为复杂的数据集测试Julia,我已经使用R和Python对其进行了广泛的研究。我一次又一次发现至关重要的一点是,推动具有规模的分析平台来揭示其优势和劣势。
我在这里使用的数据集包含2001-2018年在芝加哥犯罪记录中的犯罪记录,该文件每天早上发布供下载。目前,它由超过670万条记录和20多个属性组成,包括芝加哥警察局记录的所有犯罪的地点,地点和时间。我的测试围绕加载“主”数据进行,然后通过描述芝加哥社区和犯罪分类的查找表进行增强。从那里,我统计类型,位置和时间上的多属性频率-最终以图形方式显示结果。
R的data.table / tidyverse数据管理/分析生态系统以及Pandas的Python充满了挑战。他们的两个笔记本都易于构造且速度很快。不那么成熟的竞争对手茱莉亚(Julia)将如何堆积?
在青少年时期,Julia语言是一个不断发展的目标,这使得开发过程比使用R和Python慢??一些。但是,我能够做我需要做的事情,采用了从数据框/数据表包驱动的类似开发策略。stackoverflow是我最好的开发朋友,毫不奇怪,R和Python比Julia更有帮助。
那我找到了什么呢?除了一些烦人的问题(例如缺少向量化的“ in”运算符)外,我几乎能够在Julia中模仿我在Python / Pandas中使用的编程风格。实际上,Julia比熊猫具有“按组”处理更为灵活,因为它的功能承认缺失的值,而熊猫则忽略了它们。
不过,令我失望的是Julia与R / Python的相对性能。我认为我很慈善,注意到我在R和Python中运行的测试的运行速度至少是Julia中同类产品的两倍。当然,人们期望朱莉娅应该更快。因此,我想我第二次与茱莉亚约会后会有些沮丧,但还没有像某些人那样愿意放弃。
接下来的代码首先从Chicago Data Portal下载csv文件。然后,它将数据读取到Julia数据帧中,然后将其与几个查找表连接起来-就像使用RDBMS一样。然后,我运行许多涉及类型,时间和地点的频率查询。最后,也许是最令人高兴的是,我使用了RCall包公开的R的ggplot来绘制频率结果图。
1


雷达卡



京公网安备 11010802022788号







