【问题标题】:How to write a sparse matrix to file as text using scala/breeze?如何使用 scala/breeze 将稀疏矩阵作为文本写入文件?
【发布时间】:2015-06-26 08:19:41
【问题描述】:

我是 scala 和微风的新手。如果答案很明显,请原谅这个问题。我无法弄清楚如何将稀疏矩阵写入文件。这是我所说的一个例子:

import breeze.linalg.CSCMatrix

val B = CSCMatrix.zeros[Int](4,4)
B(0,2) = 1

现在,我想将 B 作为文本保存到文件中。

我曾考虑将 B 的元素映射到字符串,然后写入文件,但这似乎是错误的。此外,我可以将其转换为密集矩阵并将其写入文件,但这似乎也是错误的。有趣的是,即使我确实将它转换为密集矩阵,它仍然必须是 Doubles 类型,然后 csvwrite 才能工作。 Arg...请救我脱离火花/斯卡拉地狱。

【问题讨论】:

    标签: scala matrix save apache-spark breeze


    【解决方案1】:

    您可以使用接受 Matrix[Double] 的csvwrite

    import java.io.File
    import breeze.linalg.{CSCMatrix, csvwrite}
    
    
    val B = CSCMatrix.zeros[Double](4,4)
    B(0, 2) = 1.0
    csvwrite(new File("myCSCMatrix.txt"), B, separator=' ')
    

    【讨论】:

    • 根据wiki Breeze 目前支持两种方式的矩阵IO 1. Java 序列化和2. Csv。现在,使用 csvwrite 使用 Double 类型的 Matrix 然后写入文件似乎是@Eshan M. Kermani 指出的唯一解决方法
    猜你喜欢
    • 1970-01-01
    • 2013-07-08
    • 2018-01-19
    • 2023-03-17
    • 2014-08-17
    • 1970-01-01
    • 2023-04-10
    • 2021-11-25
    • 2017-07-02
    相关资源
    最近更新 更多