Julia 数据帧或数据帧是否比普通阵列快?
我想知道在大型数据集(虽然很大,但仍然适合内存)上进行计算时,普通阵列与Juliab或DataFrame的性能是否有差异 我可以使用普通数组和算法进行排序、分组、缩减等。那么为什么我需要JuliaDB或DataFrame呢Julia 数据帧或数据帧是否比普通阵列快?,julia,Julia,我想知道在大型数据集(虽然很大,但仍然适合内存)上进行计算时,普通阵列与Juliab或DataFrame的性能是否有差异 我可以使用普通数组和算法进行排序、分组、缩减等。那么为什么我需要JuliaDB或DataFrame呢 我有点理解为什么Python需要Pandas——因为它将缓慢的Python转换为快速的C。但是为什么Julia需要Juliab或DataFrame——Julia已经很快了。这可能是一个广泛的话题。让我强调一下我认为关键的特征 与标准阵列相比,DataFrames.jl或Jul
我有点理解为什么Python需要Pandas——因为它将缓慢的Python转换为快速的C。但是为什么Julia需要Juliab或DataFrame——Julia已经很快了。这可能是一个广泛的话题。让我强调一下我认为关键的特征 与标准阵列相比,DataFrames.jl或JuliaDB.jl有哪些好处
Any
的数组,这将比使用具有具体类型的数据列更慢,占用更多内存DataFrame
s或使用GLM.jl构建GLM模型)SharedArray
解决此问题,但这不是设计的一部分),如果您想要并行计算,则必须手动进行李>
- 每次创建新类型的数据结构时,使用JuliaDB.jl时,必须重新编译应用于该类型的所有函数(对于大型数据集,可以忽略这一点,但在使用多个异构小型数据集时,可能会对性能产生明显影响)李>
- 当使用DataFrames.jl时,在某些情况下,您必须使用特殊的技术来确保类型推断以实现高性能(最显著的是所讨论的屏障功能)
与速度相比,我相信DF的一个优点是您可以对列进行名称访问,而不是使用经典矩阵进行基于位置的访问。DataFrame或Juliab表类似于SQL数据库中的表,允许联接、筛选、多种数据类型等,而普通数组实际上就像向量/矩阵/数组的数学构造。回答不错。我支持Julia的观点,主要的好处是允许跨列使用不同的类型。尽管对于许多问题来说,让所有内容都成为
Float64
就足够了,但在整个分析字段中,第一列最好是索引行的不同类型。例如,对于经济或金融数据,您经常希望第一列的类型为Date
或DateTime
。我是否可以使用JuliaDB.jl来拟合数据集大于内存的回归模型(例如MixedModels.jl),而不在内存中加载所有内容?如果MixedModels.jl不可能,但是,对于您来说,与JuliaDB配合良好的功能就足够了(它已经支持许多模型)。