【发布时间】:2019-07-07 02:38:25
【问题描述】:
我在 Julia 中有一个 10000x10000 数组,例如 A=rand(10000,10000)。如何存储那个大数组,以便在 Atom/Juno 等 IDE 中使用它,执行矩阵运算、行列式、特征值等?或者即使我将该数组转移到R,它是一种在R 中处理那个大数组的方法吗?
【问题讨论】:
我在 Julia 中有一个 10000x10000 数组,例如 A=rand(10000,10000)。如何存储那个大数组,以便在 Atom/Juno 等 IDE 中使用它,执行矩阵运算、行列式、特征值等?或者即使我将该数组转移到R,它是一种在R 中处理那个大数组的方法吗?
【问题讨论】:
如果您的数据是稀疏的(并非所有单元格都有值),您可以将其存储为稀疏矩阵,这将大大改善内存占用(请参阅https://docs.julialang.org/en/v1/stdlib/SparseArrays/)。它是否适合记忆还取决于矩阵的元素是什么。例如。您可以用 Int8 表示值还是需要 64 位精度元素?矩阵不仅仅是一个矩阵。
一般来说,如果您的对象变得太大以至于无法放入内存,您可以将它们写入磁盘并“内存映射”它们,这样您就可以将磁盘矩阵用于任何您想要的东西可以使用普通的矩阵。你可以在这里查看文档:https://docs.julialang.org/en/v1/stdlib/Mmap
【讨论】: