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

Python二维数组求最值:降雨统计周/年总量及周最值实现

52周降雨监测数据统计功能补全方案

你现有代码已经完成了二维数组初始化、CSV数据读取、全年降雨总量累加的逻辑,剩下两个功能直接基于已加载完成的rainfall_data二维数组实现即可,不需要改动原有逻辑。

核心实现逻辑

  • 各周降雨总量:二维数组每一行对应单周7天的日降雨量,直接对每行做求和就能得到单周总降雨量,用Python内置sum()函数实现即可,不需要手动写循环累加。
  • 单周降雨量最值:同样针对每行数据,直接调用内置min()、max()函数,就能直接获取单周内日降雨量的最小值、最大值,不需要手动逐元素比较。

完整可运行代码

import csv

# 初始化52行7列的二维数组,与原有初始化逻辑一致
rainfall_data = [[0.0 for _ in range(7)] for _ in range(52)]

# 逐行读取CSV填充数据,保留原有读取逻辑
with open('annual_rainfall.csv', 'r', encoding='utf-8') as f:
    csv_reader = csv.reader(f)
    for week_index, row in enumerate(csv_reader):
        # 将CSV读取的字符串值转为浮点数存入数组
        rainfall_data[week_index] = [float(daily_rain) for daily_rain in row]

# 原有已实现:全年降雨总量累加
annual_total = 0.0
for week_data in rainfall_data:
    for daily_val in week_data:
        annual_total += daily_val

# 补全功能1:计算各周降雨总量
weekly_totals = []
for week_data in rainfall_data:
    weekly_totals.append(sum(week_data))

# 补全功能3:计算单周降雨量最小值、最大值
weekly_extremes = []
for week_data in rainfall_data:
    weekly_min = min(week_data)
    weekly_max = max(week_data)
    weekly_extremes.append( (weekly_min, weekly_max) )

# 结果输出
print("=== 各周降雨总量(单位:mm) ===")
for week_num, total in enumerate(weekly_totals, start=1):
    print(f"第{week_num}周: {total:.1f}")

print(f"\n全年累计降雨量: {annual_total:.1f}mm")

print("\n=== 各周降雨量极值(单位:mm) ===")
for week_num, (min_rain, max_rain) in enumerate(weekly_extremes, start=1):
    print(f"第{week_num}周: 日降雨量最小值{min_rain:.1f},最大值{max_rain:.1f}")

注意事项:如果你的CSV文件包含表头行、空单元格或者异常非数值内容,需要在读取数据的步骤增加过滤、异常捕获逻辑,避免浮点数转换报错;如果对降雨数据计算精度要求高,可以替换为decimal类型做数值计算,减少浮点运算带来的精度误差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 02:24:21