當我運行模擬時,我喜歡初始化一個大的空數組,並在模擬迭代到最後時填充它。我用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. Row綁定Julia數據幀
- 4. 已添加數據(大小未定義)與已知列數(9)不匹配
- 5. 的Postgres + EJB3預分配大小錯誤
- 6. 配置UIImagePickerController的幀大小
- 7. 從大數據幀中採樣小數據幀
- 8. Perl:創建已知大小的數組
- 9. 如何分配數據幀?
- 10. C++ unordered_map是否有預先分配內存的方法,如果事先已知最大大小
- 11. 來自另一個數據幀的大小熊貓數據幀
- 12. 分配大熊貓據幀列dtypes
- 13. 將數據幀拆分成更小的數據幀並將大數據幀推送給所有執行者?
- 14. R的預留內存是分配數組大小的兩倍
- 15. 熊貓數據幀列的大小寫不敏感匹配
- 16. 分裂,在大熊貓數據幀
- 17. 簡單的數組內存分配與大小動態分配和預定的大小
- 18. 在C++中返回一個已知大小的數組?
- 19. 在omp循環中填充已知大小的矩陣。未知
- 20. 如何估計已知列範圍的MYSQL數據庫大小
- 21. 在Matlab中預先分配字符串大小
- 22. 將大數據幀拆分成更小的段
- 23. 宏在Julia分配中發現錯誤
- 24. memcpy在編譯時已知大小
- 25. 在R中預分配一個數據幀,並將日期作爲列類
- 26. 用Nice格式在Julia Jupyter Notebook中顯示整個數據幀
- 27. 大熊貓將分組數據幀到另一個數據幀
- 28. 按行分割大型數據幀兩個多個數據幀
- 29. R:分配POSIXct類的數據幀
- 30. PHP圖像調整大小未知源大小,已知輸出大小
如果您知道所有列的類型都是相同的,並且永遠不會有未填充('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