美文网首页DTeam团队日志每周500字开源工具技巧
Julia 世界中的主流数据分析工具

Julia 世界中的主流数据分析工具

作者: 胡键 | 来源:发表于2019-08-21 09:12 被阅读14次

原文链接

在 Julia 中,主流的数据分析工具有以下两套:

它们完全可以视为 Julia 世界的 Pandas ,并且我个人更喜欢它们提供的语法糖,在一定程度上让代码更容易使用,这里列出几个例子大家可以感受一下(这两大类包在这方面功能都类似,故只选取 JuliaDB 这一流派为例):

  • 过滤
# Using JuliaDB
filter((:month => x -> x .== 1, :day => x -> x .== 1), flights);

# Using JuliaDBMeta
@filter flights :month .== 1 && :day .== 1
  • 选列
select(flights, (:year, :month, :day))
  • GroupBy
# Using JuliaDB
delay = groupby(
    (
        count = length, 
        dist = :distance => x -> mean(skipmissing(x)), 
        delay = :arr_delay => x -> mean(skipmissing(x))
    ), 
    flights, 
    :tailnum
); # remove ; to see result

# Using JuliaDBMeta
delay = @groupby flights :tailnum {
    count = length(_),
    dist = mean(skipmissing(:distance)),
    delay = mean(skipmissing(:arr_delay))
}

既然两个包解决的问题域类似,那么它们之间的区别在哪里呢?关于这个问题的答案,可以参照 stackoverflow 上的这篇问答

What is the difference between DataFrames.jl and JuliaDB.jl

  1. JuliaDB.jl supports distributed parallelism; normal use of DataFrames.jl assumes that data fits into memory (you can work around this using SharedArray but this is not a part of the design) and if you want to parallelise computations you have to do it manually;
  2. JuliaDB.jl supports indexing while DataFrames.jl currently does not;
  3. Column types of JuliaDB.jl are stable and for DataFrames.jl currently they are not. The consequences are:
    • when using JuliaDB.jl each time a new type of data structure is created all functions that are applied over this type have to be recompiled (which for large data sets can be ignored but when working with many heterogeneous small data sets can have a visible performance impact);
    • when using DataFrames.jl you have to use special techniques ensuring type inference to achieve high performance is some situations (most notably barrier functions as discussed here).

简单来说,JuliaDB 假想处理超出内存的数据,支持分布式并行处理。并且,JuliaDB 首页也列出了它与其他流行数据处理包的对比。

由于网上已经有介绍这两个包的很好的示例文章,我这里也就不再鹦鹉学舌,单把链接列出来:

最后补充一句,在之前关于时序分析的文章中,我曾说过没有找到支持 autocorrelation 的包。现在,这个问题得到解决了!在 OnlineStats 这个包中已经对此有支持,而且更赞的是,JuliaDB 与之有集成!

相关文章

  • Julia 世界中的主流数据分析工具

    原文链接 在 Julia 中,主流的数据分析工具有以下两套: DataFrames 和 DataFramesMet...

  • 数据埋点

    数据采集及埋点、无埋点 常用数据统计分析工具 谷歌分析、百度统计和腾讯分析 主流的数据收集方式基本都是基于java...

  • 数据分析入门

    目录: 1.概述2.数据是基础3.数据库是数据存储的载体4.工具是实现数据分析的方式4.1主流BI工具——Powe...

  • 未明学院:对照Excel使用Python进行数据分析,更快掌握

    Excel和Python,作为数据分析的主流工具,在从效率提升到数据商业化的整个过程中,都起到了重要作用。不管是在...

  • 适用于2018年的10大最佳大数据分析工具

    1.最佳大数据分析工具 在这篇关于最佳大数据分析工具的文章中,我们将了解最佳数据分析工具。此外,还将研究这些数据分...

  • Julia系列二:来入坑吧

    1.数据类型 先看看Julia中的内建数据模块,这些数据模块通常被称为数据类型。Julia中的每个变量都属于一种特...

  • BI工具:让数据再无秘密

    在海量数据分析工具中,BI工具是最引人注目,也是目前大数据分析效果最佳的一种,BI工具让数据再无秘密。搞不清数据,...

  • #代谢通路分析工具#

    opencobra 开源的基于约束的生物重建、分析和建模的工具(分别在MatLab、python、Julia)。C...

  • 用Excel做回归分析

    Excel数据分析工具库是个很强大的工具,可以满足基本的统计分析,这里介绍用Excel数据分析工具库中的回归做回归...

  • 《Julia 数据科学应用》总结

    Julia 入门 数据类型在 Julia 中特别重要,使用数据类型,可以使我们开发出的程序和函数具有更好的性能,并...

网友评论

    本文标题:Julia 世界中的主流数据分析工具

    本文链接:https://www.haomeiwen.com/subject/ymvvsctx.html