编辑
正如评论中所建议的那样,我想补充一点,矩阵密度是100%,数字都是浮点数.
解决方法 对于任何类型的大数据,CSV都是非常非常无效的格式.鉴于您的所有数据都是数字,并且您的数据大小是一致的,因此紧凑的二进制格式将是最佳的.如果以网络字节顺序将数据存储为1,000,000个4字节整数的二进制文件,其中前100个是第一行,第二个是第二行,依此类推,它会将文件大小从12MB减少到大约8MB,并完全消除解析CSV的低效率(这实在是效率低下).要将数据转换为此格式,请尝试运行此 Ruby代码(我假设数据是CSV的二维数组):newdat = data.flatten.map {|e| e.to_f}.pack("G*")
然后将newdat写入文件作为新数据:
f = file.open("data.dat",'wb')f.write(newdat)f.close
要从文件中解析此数据:
data = file.open("data.dat",'rb').read.unpack("G*").each_slice(100).to_a
这将把数据设置为矩阵作为二维数组.
注意:我实际上无法为您提供硬数字,因为我没有任何巨大的CSV文件,里面装满了花车.但是,这应该更有效率.
总结以上是内存溢出为你收集整理的ruby中的大矩阵代数计算全部内容,希望文章能够帮你解决ruby中的大矩阵代数计算所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)