在Scala中映射特定轴

时间:2018-07-23 17:54:23

标签: scala

如果我在Scala中有一个Array[Array[Double]],是否有一种方法可以在第二个轴上进行映射?

例如,考虑以下矩阵:

val M : Array[Array[Double]] = Array(Array(1d,2d),Array(3d,4d),Array(5d,6d))

要规范化行,我只需运行: M.map(x=>x.map(_/x.sum))

但是,规范化列似乎必须执行: M.transpose.map(x=>x.map(_/x.sum)).transpose

这是可行的,但是如果我有两个以上的索引,它将变得非常乏味。通常,如果我要映射一堆嵌套Array的最后一个轴(即Array[Array[...Array[Double]...]]),则需要通过映射将最后一个轴冒泡到前端并转置,然后在其上进行映射,然后将其冒泡回去。

0 个答案:

没有答案