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

如何在Kotlin中计算二维数组的按列平均值

Kotlin 二维数组按列求平均值实现方案

方案1:纯Kotlin标准库实现(无额外依赖)

直接使用Kotlin自带的集合操作即可完成需求,示例代码如下:

fun main() {
    // 输入示例二维数组
    val twoDArray = arrayOf(
        intArrayOf(1, 2, 3),
        intArrayOf(4, 5, 6)
    )

    val columnAverages = if (twoDArray.isEmpty() || twoDArray.first().isEmpty()) {
        emptyList()
    } else {
        val rowCount = twoDArray.size
        // 遍历每一列索引,聚合该列所有行的元素计算平均值
        (0 until twoDArray.first().size).map { colIndex ->
            twoDArray.sumOf { row -> row[colIndex].toDouble() } / rowCount
        }
    }

    println(columnAverages) // 输出:[2.5, 3.5, 4.5]
}

说明:

  • 代码内置了空数组、空行边界判断,避免索引越界异常
  • 若二维数组元素本身为Double/Float类型,可去掉.toDouble()转换
  • 若需要返回DoubleArray类型,可在结果后追加.toDoubleArray()

方案2:使用Multik库实现(对标Python Numpy)

如果你的项目已经引入JetBrains官方的Multik数值计算库,可以使用和Numpy几乎一致的API实现:

import org.jetbrains.kotlinx.multik.api.mk
import org.jetbrains.kotlinx.multik.ndarray.operations.mean

fun main() {
    val ndArray = mk.ndarray(mk[mk[1,2,3], mk[4,5,6]])
    // axis=0对应按维度0(列)计算平均值,和Numpy参数规则一致
    val columnAverages = ndArray.mean(axis = 0)
    println(columnAverages) // 输出:[2.5, 3.5, 4.5]
}

注:你提到的Python中np.mean(array, axis=1)实际为按行求平均,按列求平均对应的参数为axis=0,上述两种方案均匹配你给出的示例输出需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:36:02