Optimization 将CSV保存到.MAT或二进制文件
我正在处理倍频程,有一个~80MB.csv文件要加载 csvread()需要很长时间才能加载 如何将csv文件保存到.mat文件或二进制文件,或者至少加速倍频程csvread()Optimization 将CSV保存到.MAT或二进制文件,optimization,csv,converter,octave,Optimization,Csv,Converter,Octave,我正在处理倍频程,有一个~80MB.csv文件要加载 csvread()需要很长时间才能加载 如何将csv文件保存到.mat文件或二进制文件,或者至少加速倍频程csvread() 提前谢谢你 如果您也在使用r,您可以执行以下操作: 使用R中的“read.csv”读取文件 使用R包“R.matlab”编写一个“.mat”文件 现在您可以以八度音阶“更快”加载.mat文件,但步骤1(“读取csv”)也可能非常慢 这是一个python版本(使用numpy和scipy)。该程序采用两个参数,输入csv文
提前谢谢你 如果您也在使用r,您可以执行以下操作:
csvmatrix
访问其中的数据
import csv
import sys
import numpy
import scipy.io
if __name__ == "__main__":
if len(sys.argv) != 3:
print "Usage: %s input.csv output.mat" % sys.argv[0]
sys.exit(-1)
data = [ ]
with open(sys.argv[1]) as f:
reader = csv.reader(f)
for row in reader:
rowData = [ float(elem) for elem in row ]
data.append(rowData)
matrix = numpy.array(data)
scipy.io.savemat(sys.argv[2], {'csvmatrix':matrix})
我已经多次面对这个问题。我所做的可能很草率,但对我来说效果很好。我在电子表格(Excel或Calc)中打开文件,复制内容,不带任何标题,并粘贴到文本编辑器中,从中保存为.mat (顺便说一句,Gedit和Notepad++是我处理大文件时的首选编辑器)