首页 > 试题广场 >

按行或列计算平均值

[编程题]按行或列计算平均值
  • 热度指数:1425 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
实现一个函数,用于计算矩阵按行或按列的平均值。该函数接收一个二维数组(矩阵)和计算模式作为输入,返回对应的平均值列表。

输入描述:
输入包含两行:
1. 第一行为一个二维数组(矩阵),数组中的元素可以是整数或浮点数
2. 第二行为计算模式,字符串类型,值为 "row" 或 "column"
- "row": 按行计算平均值
- "column": 按列计算平均值


输出描述:
返回一个浮点数列表,表示按指定模式计算的平均值:
- 如果模式为 "row",返回每行的平均值
- 如果模式为 "column",返回每列的平均值
示例1

输入

[[1, 2, 3], [4, 5, 6]]
row

输出

[2.0, 5.0]

说明


示例2

输入

[[1, 2, 3], [4, 5, 6]]
column

输出

[2.5, 3.5, 4.5]

备注:
1. Python3对应的输入、输出已给出,您只用实现核心功能函数即可。
2. 支持numpy、scipy、pandas、scikit-learn库。
from typing import List, Union
import numpy as np

def calculate_matrix_mean(matrix: List[List[Union[int, float]]], mode: str) -> List[float]:
    #首先按照对行或列求平均值进行分类讨论
    if(mode == "row"):
        ans = []
#如果是对行求平均值,则每次取出matrix中一行的数据,求平均值

        for k in matrix:
            sum = 0
            for j in k:
                sum += j
            ans.append(1.0*sum/len(k))
        return ans
    else:
        ans = []
#如果是对列求平均值,则每次取出matrix中一行列的数据,求平均值

        for i in range(len(matrix[0])):
            sum = 0
            for j in range(len(matrix)):
                sum+=matrix[j][i]
            ans.append(1.0*sum/len(matrix))
        return ans
   
def main():
    matrix = eval(input())
    mode = input()
    result = calculate_matrix_mean(matrix, mode)
    print(result)

if __name__ == "__main__":
    main()
发表于 2025-02-07 17:34:33 回复(0)