当我运行模拟时,我喜欢初始化一个大的空数组,并在模拟迭代到最后时填充它。我用res = Array(Real,(n_iterations,n_parameters))
之类的东西来做这件事。不过,有命名的列是我的好选择,我认为这意味着使用DataFrame。但是,当我尝试执行类似res_df = convert(DataFrame,res)
的操作时,它会引发错误。我想不是做这样的事情res_df = DataFrame(a=Array(Real,N),b=Array(Real,N),c=Array(Real,N),....)
的建议通过回答一个更简洁的方法:julia create an empty dataframe and append rows to it在Julia中预分配已知大小的数据帧
2
A
回答
4
可以使用DataFrame(column_eltypes::Array{T,1},cnames::Array{T,1},nrows::Integer)
构造:
julia> DataFrame([Real,Real,Real],[:a,:b,:c], 10000)
10000x3 DataFrame
| Row | a | b | c |
|-------|----|----|----|
| 1 | NA | NA | NA |
| 2 | NA | NA | NA |
⋮
| 9998 | NA | NA | NA |
| 9999 | NA | NA | NA |
| 10000 | NA | NA | NA |
这么说,我高度建议您使用数组的具体类型而不是Real
;例如,DataFrame([Float64, Float64, …
。这样做会带来巨大的性能提升。
相关问题
- 1. SQLite - 预分配数据库大小
- 2. 在R中创建未知大小的数据帧
- 3. 的Postgres + EJB3预分配大小错误
- 4. 配置UIImagePickerController的帧大小
- 5. 从大数据帧中采样小数据帧
- 6. Perl:创建已知大小的数组
- 7. 来自另一个数据帧的大小熊猫数据帧
- 8. 将数据帧拆分成更小的数据帧并将大数据帧推送给所有执行者?
- 9. R的预留内存是分配数组大小的两倍
- 10. 熊猫数据帧列的大小写不敏感匹配
- 11. 分裂,在大熊猫数据帧
- 12. 在C++中返回一个已知大小的数组?
- 13. 在omp循环中填充已知大小的矩阵。未知
- 14. 如何估计已知列范围的MYSQL数据库大小
- 15. 在Matlab中预先分配字符串大小
- 16. 在R中预分配一个数据帧,并将日期作为列类
- 17. 用Nice格式在Julia Jupyter Notebook中显示整个数据帧
- 18. PHP图像调整大小未知源大小,已知输出大小
- 19. R:分配POSIXct类的数据帧
- 20. 大熊猫将分组数据帧到另一个数据帧
- 21. 在R中合并不同大小的数据帧。
- 22. ffmpeg将avi分成已知帧速率的帧
- 23. MYSQL根据计数和数量分配“小”,“中”,“大”
- 24. 将一个未知大小列表分成n个没有数据的数据帧。列
- 25. 即使大部分数据都已填充,也不能插入数据帧
- 26. 从大型数据中制作小型数据帧。
- 27. PHP_AUTH_USER只在某些帧中已知
- 28. 减去两个不同大小的数据帧,但至少保持第一个数据帧的大小
- 29. CouchDB集群和/或数据库的最大已知大小是多少?
- 30. 组行通过分配值作为大熊猫数据帧列
如果您知道所有列的类型都是相同的,并且永远不会有未填充('NA')元素,那么可能会有其他数据结构可供您使用。看一下[NamedArrays.jl](https://github.com/davidavdav/NamedArrays.jl),或者如果你愿意乘坐你的裤子坐在不稳定的0.4上工作,你可以试试我的最近的进行中的工作[AxisArrays.jl](https://github.com/mbauman/AxisArrays.jl)。这两个项目都旨在更直接地增加具有维度名称和轴元数据的内置'Array',而DataFrames使用列集合方法。 – 2015-02-23 20:01:46
谢谢你,还有关于Float64与Real的提示。 – 2015-02-27 02:35:32