You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求Julia中计算多维数组边际条件比例的函数(类R proportions)

在Julia中实现按指定维度计算数组比例的功能

在Julia里,你可以通过sum函数结合广播除法,轻松实现类似R中proportions()的功能,无需额外安装包。

基础用法示例

假设我们有一个二维数组:

arr = [1 2 3; 4 5 6]

按行(维度1)计算比例

每个元素除以所在行的总和:

arr ./ sum(arr, dims=1)

输出结果:

2×3 Matrix{Float64}:
 0.2  0.266667  0.333333
 0.8  0.733333  0.666667

按列(维度2)计算比例

每个元素除以所在列的总和:

arr ./ sum(arr, dims=2)

输出结果:

2×3 Matrix{Float64}:
 0.166667  0.333333  0.5
 0.266667  0.333333  0.4

封装成便捷函数

如果需要像R里那样直接调用proportions函数,可以自己封装一个:

function proportions(arr; dims::Int)
    return arr ./ sum(arr, dims=dims)
end

# 调用示例
proportions(arr, dims=1)  # 按行计算比例
proportions(arr, dims=2)  # 按列计算比例

高维数组支持

这个方法同样适用于更高维度的数组,只需要指定对应的维度编号即可。比如三维数组按第3维度计算比例:

arr_3d = rand(2, 2, 2)
proportions(arr_3d, dims=3)

内容的提问来源于stack exchange,提问作者Mohammad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 05:42:10