Ruby中如何进行大矩阵的代数运算?
- 内容介绍
- 文章标签
- 相关推荐
本文共计548个文字,预计阅读时间需要3分钟。
我正在开发一个处理大规模数据矩阵计算的项目。我有10,000行和100列的CSV文件,其中包含10个目标。目前,我正在运行一个后台作业,它从每个CSV文件中读取数据,将其拉入数组,并对数据进行一些矩阵乘法操作。
我正在开发一个涉及使用大型数据矩阵进行计算的项目.我有10,000行和100列的CSV文件,其中有10个.目前,我正在运行一个后台作业,它从每个CSV读取数据,将其拉入数组,对数据运行一些矩阵乘法计算,然后移动到下一个CSV.我确信有更好的方法可以做到这一点,因为看起来处理工作所花费的大部分时间都花在打开CSV上.我的问题实际上归结为我应该如何存储当前在这些CSV文件中的数据,以便轻松访问它并以更有效的方式运行计算.任何帮助,将不胜感激编辑
正如评论中所建议的那样,我想补充一点,矩阵密度是100%,数字都是浮点数.
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文件,里面装满了花车.但是,这应该更有效率.
本文共计548个文字,预计阅读时间需要3分钟。
我正在开发一个处理大规模数据矩阵计算的项目。我有10,000行和100列的CSV文件,其中包含10个目标。目前,我正在运行一个后台作业,它从每个CSV文件中读取数据,将其拉入数组,并对数据进行一些矩阵乘法操作。
我正在开发一个涉及使用大型数据矩阵进行计算的项目.我有10,000行和100列的CSV文件,其中有10个.目前,我正在运行一个后台作业,它从每个CSV读取数据,将其拉入数组,对数据运行一些矩阵乘法计算,然后移动到下一个CSV.我确信有更好的方法可以做到这一点,因为看起来处理工作所花费的大部分时间都花在打开CSV上.我的问题实际上归结为我应该如何存储当前在这些CSV文件中的数据,以便轻松访问它并以更有效的方式运行计算.任何帮助,将不胜感激编辑
正如评论中所建议的那样,我想补充一点,矩阵密度是100%,数字都是浮点数.
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文件,里面装满了花车.但是,这应该更有效率.

