我发布这个问题是因为我想知道我是否做了一些非常错误的事情来得到这个结果。
我有一个中等大小的csv文件,我试图使用numpy来加载它。为了演示,我使用python制作了文件:import timeit
import numpy as np
my_data = np.random.rand(1500000, 3)*10
np.savetxt('./test.csv', my_data, delimiter=',', fmt='%.2f')
然后,我尝试了两种方法:numpy.genfromtxt,numpy.loadtxtsetup_stmt = 'import numpy as np'
stmt1 = """\
my_data = np.genfromtxt('./test.csv', delimiter=',')
"""
stmt2 = """\
my_data = np.loadtxt('./test.csv', delimiter=',')
"""
t1 = timeit.timeit(stmt=stmt1, setup=setup_stmt, number=3)
t2 = timeit.timeit(stmt=stmt2, setup=setup_stmt, number=3)
结果表明:t1=32.159652940464184,t2=52.00093725634724
但是,当我尝试使用matlab时:tic
for i = 1:3
my_data = dlmread('./test.csv');
end
toc
结果表明:经过时间3.196465秒。
我知道装载速度可能有一些差异,但是:这比我预料的要多得多
是不是np.loadtxt应该比np.genfromtxt快?
我还没有尝试过python csv模块,因为加载csv文件是我经常做的事情,而且对于csv模块,编码有点冗长。。。但如果这是唯一的办法,我很乐意尝试。现在我更关心的是我是否做错了什么。
如有任何意见,将不胜感激。提前多谢!