假设我有一个二维数组,我想对它的每一列应用几个函数.理想情况下,我希望以矩阵的形式返回结果(每个函数一行,每个输入列一列).
以下代码生成我想要的值,但是作为数组数组.
A = rand(10,10)
[mapslices(f, A, 1) for f in [mean median iqr]]
Run Code Online (Sandbox Code Playgroud)
另一个类似的例子在这里[ Julia:使用带有矩阵的pmap
是否有更好的语法将结果以二维数组的形式返回,而不是数组数组?
我真正喜欢的是具有类似于sapplyR 的功能的东西.[ https://stat.ethz.ch/R-manual/R-devel/library/base/html/lapply.html]
您可以使用匿名函数
mapslices(t -> [mean(t), median(t), iqr(t)], A, 1)
Run Code Online (Sandbox Code Playgroud)
但是使用理解和泼溅,就像你在上一个例子中一样,也很好.对于非常大的数组,您可能希望避免转置和splatting引入的临时分配,但在大多数情况下,您不必注意这一点.
| 归档时间: |
|
| 查看次数: |
604 次 |
| 最近记录: |