假设我有一个二维数组,并且想对它的每一列应用几个函数。理想情况下,我想以矩阵形式返回结果(每个函数一行,每个输入列一行)。
以下代码生成我想要的值,但作为数组数组。
A = rand(10,10)
[mapslices(f, A, 1) for f in [mean median iqr]]
另一个类似的例子在这里[Julia: use of pmap with matrices
是否有更好的语法以二维数组而不是数组的形式返回结果?
我真正想要的是具有类似于R中的
sapply
的功能。[https://stat.ethz.ch/R-manual/R-devel/library/base/html/lapply.html] 最佳答案
您可以像下面那样使用匿名函数
mapslices(t -> [mean(t), median(t), iqr(t)], A, 1)
但是使用您的最后一个示例中的理解和拼写也可以。对于非常大的数组,您可能要避免转置和展开产生的临时分配,但是在大多数情况下,您不必注意这一点。