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

Python中如何读取全年降雨CSV数据并存储到二维数组?

如何将CSV降雨数据存储为二维数组

其实你当前的代码已经得到了符合需求的二维数组——list(csv.reader(open("rainfall.csv")))生成的data本身就是二维列表(Python中没有专门的"数组"类型,二维列表就是最常用的二维数据存储方式),每个子列表对应CSV中的一行(一周的数据),子列表里的元素对应每一列(单日降雨数据)。

不过可以优化代码的文件处理逻辑,同时根据需求把字符串数据转为数值类型,以下是具体实现:

基础实现(直接得到二维列表)

用with语句管理文件,自动完成文件关闭,避免资源泄漏:

import csv

with open("rainfall.csv", "r") as file:
    # 将csv.reader的结果转为list,直接得到二维数组
    rainfall_data = list(csv.reader(file))

# 访问第2周(索引从0开始,所以索引1对应第2周)的第3天(索引2对应第3列)数据
print(rainfall_data[1][2])

进阶实现(转为数值类型)

CSV读取的数据默认是字符串格式,降雨数据通常是数值,建议转为float类型方便后续计算:

import csv

with open("rainfall.csv", "r") as file:
    reader = csv.reader(file)
    # 如果CSV第一行是表头,先读取表头(可选,根据你的文件结构调整)
    header = next(reader)
    # 遍历每一行,将每个元素转为float
    rainfall_data = [[float(value) for value in row] for row in reader]

# 示例:计算全年总降雨量
total_rain = sum(sum(week) for week in rainfall_data)
print(f"全年总降雨量:{total_rain}")

验证数据结构

可以通过以下代码确认二维数组的行数(周数)和列数(每周天数):

print(f"全年总周数:{len(rainfall_data)}")
if rainfall_data:
    print(f"每周天数:{len(rainfall_data[0])}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 18:43:12