本文介绍了如何总结了斯卡拉阵列的每一列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我有阵列的阵列Scala中(类似于矩阵),什么是向矩阵的每列总结有效的方法?例如,如果我的数组的数组类似于如下:
If I have an array of array (similar to a matrix) in Scala, what's the efficient way to sum up each column of the matrix? For example, if my array of array is like below:
val arr = Array(Array(1, 100, ...), Array(2, 200, ...), Array(3, 300, ...))
和我想总结一下每一列(例如,总结所有子阵列的第一要素,总结所有子阵列等的第二个元素),并得到一个新的数组象下面这样:
and I want to sum up each column (e.g., sum up the first element of all sub-arrays, sum up the second element of all sub-arrays, etc.) and get a new array like below:
newArr = Array(6, 600, ...)
我怎样才能在斯卡拉星火有效地做到这一点?
How can I do this efficiently in Spark Scala?
推荐答案
使用 矢量
:
scala> val arr = Array(Array(1, 100), Array(2, 200), Array(3, 300))
arr: Array[Array[Int]] = Array(Array(1, 100), Array(2, 200), Array(3, 300))
scala> arr.map(breeze.linalg.Vector(_)).reduce(_ + _)
res0: breeze.linalg.Vector[Int] = DenseVector(6, 600)
如果您的输入是稀疏的,你可以考虑使用 breeze.linalg.SparseVector
。
If your input is sparse you may consider using breeze.linalg.SparseVector
.
这篇关于如何总结了斯卡拉阵列的每一列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!