本文介绍了如何总结了斯卡拉阵列的每一列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我有阵列的阵列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.

这篇关于如何总结了斯卡拉阵列的每一列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 15:13