我想将制表符分隔的文本文件读入 Breeze DenseMatrix。我在 ScalaDoc 中看到这应该是可能的,并且有一整套 I/O 类,但是我找不到任何示例并且很难消化 ScalaDoc。
有人可以提供一个简单的读/写示例吗?
我想将制表符分隔的文本文件读入 Breeze DenseMatrix。我在 ScalaDoc 中看到这应该是可能的,并且有一整套 I/O 类,但是我找不到任何示例并且很难消化 ScalaDoc。
有人可以提供一个简单的读/写示例吗?
有一种方法可以将 csv 文件读入densematrix
import breeze.linalg._
import java.io._
val matrix=csvread(new File("your file localtion"),',')
api:http ://www.scalanlp.org/api/breeze/index.html#breeze.linalg.package
您可以使用scala.io.Source
从文件中读取制表符分隔的数据。
一些样本数据:
0 1 2 3 4 5
6 7 8 9 10 11
其中一个DenseMatrix
构造函数具有这种形式new DenseMatrix(rows: Int, data: Array[V], offset: Int = 0)
,所以我将使用它。
获取行数:
scala> scala.io.Source.fromFile("TabDelimited.txt").getLines.size
res 0:Int = 2
然后将数据作为Array[Int]
:
scala> scala.io.Source.fromFile("TabDelimited.txt").getLines.toArray.flatMap(_.split("\t")).map(_.toInt)
res1: Array[Int] = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
然后res0
又res1
可以用来创建一个新的DenseMatrix
.