inf*_*rno 4 scala scala-breeze apache-spark
我在Scala中使用2维Breeze矩阵.在某些时候,我必须对两个矩阵进行元素划分.分母矩阵中的某些元素可以为零,从而在结果中产生NaN.
我可以循环遍历矩阵尺寸,并用> 0替换0.0s.
但是,有一个更简单或Scala惯用的解决方案吗?
一步步:
使用示例矩阵:
val dm = DenseMatrix((1.0, 0.0, 3.0), (0.0, 5.0, 6.0))
Run Code Online (Sandbox Code Playgroud)找出哪些元素等于0.0:
dm :== 0.0
Run Code Online (Sandbox Code Playgroud)
breeze.linalg.DenseMatrix[Boolean] =
false true false
true false false
Run Code Online (Sandbox Code Playgroud)切割矩阵:
dm(dm :== 0.0)
Run Code Online (Sandbox Code Playgroud)
breeze.linalg.SliceVector[(Int, Int),Double] = breeze.linalg.SliceVector@2b
Run Code Online (Sandbox Code Playgroud)使用切片矩阵进行更换:
dm(dm :== 0.0) := 42.0
Run Code Online (Sandbox Code Playgroud)
breeze.linalg.Vector[Double] = breeze.linalg.SliceVector@2b
Run Code Online (Sandbox Code Playgroud)检查矩阵:
dm
Run Code Online (Sandbox Code Playgroud)
breeze.linalg.DenseMatrix[Double] =
1.0 42.0 3.0
42.0 5.0 6.0
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
513 次 |
| 最近记录: |