与Python相比,阅读Julia中的大文本/ csv文件需要很长时间.以下是读取大小为486.6 MB且包含153895行和644列的文件的时间.
python 3.3的例子
import pandas as pd
import time
start=time.time()
myData=pd.read_csv("C:\\myFile.txt",sep="|",header=None,low_memory=False)
print(time.time()-start)
Output: 19.90
Run Code Online (Sandbox Code Playgroud)
R 3.0.2示例
system.time(myData<-read.delim("C:/myFile.txt",sep="|",header=F,
stringsAsFactors=F,na.strings=""))
Output:
User System Elapsed
181.13 1.07 182.32
Run Code Online (Sandbox Code Playgroud)
Julia 0.2.0(Julia Studio 0.4.4)示例#1
using DataFrames
timing = @time myData = readtable("C:/myFile.txt",separator='|',header=false)
Output:
elapsed time: 80.35 seconds (10319624244 bytes allocated)
Run Code Online (Sandbox Code Playgroud)
Julia 0.2.0(Julia Studio 0.4.4)示例#2
timing = @time myData = readdlm("C:/myFile.txt",'|',header=false)
Output:
elapsed time: 65.96 seconds (9087413564 bytes allocated)
Run Code Online (Sandbox Code Playgroud)
Julia比R快,但与Python相比相当慢.我可以做些什么来加快阅读大文本文件的速度?
另一个问题是内存中的大小是Julia中硬盘文件大小的18倍,但是python只有2.5倍大小.在Matlab中,我发现它对于大文件来说是最有效的内存,它是2 x大小的硬盘文件大小.Julia内存中文件大小的任何特殊原因?
我正在尝试将 PyCall.jlwrap ('Julia') 对象转换为 Pandas 数据帧。我正在使用 PyJulia 在 Julia 中运行优化算法,结果会输出一个数据帧对象。我想将该对象转换为 Pandas 数据框。
这是一个与 5 年前在这里提出的类似问题。但是,没有任何代码建议如何完成传输。
任何帮助都会有用!
这是我目前设置的代码。知道在我的“optimization_program”的背景中发生了什么并不是很有用,而只是知道“run_hybrid”和“run_storage”命令返回的内容返回了一个数据帧:
### load in necessary modules for pyjulia
from julia import Main as jl
##load my user defined module
jl.include("optimization_program_v3.jl")
##run function from module
results = jl.run_hybrid(generic_inputs)
##test type of item returned
jl.typeof(results)
returns: <PyCall.jlwrap DataFrame>
##try to convert to pandas
test = pd.DataFrame(results)
Run Code Online (Sandbox Code Playgroud)
值错误回溯(最近一次调用)
在 ()
----> 1 测试 = pd.DataFrame(结果)
在init (self, data, index, columns, dtype, copy)
第 420 …