如果我在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]...]]
),则需要通过映射将最后一个轴冒泡到前端并转置,然后在其上进行映射,然后将其冒泡回去。