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

如何使用NumPy计算CSV文件指定列的平均值并解决类型报错问题

问题原因分析
  • 你当前读取的emp_code数组所有元素都是字符串类型(从输出的dtype='<U2'可确认),数值计算方法无法直接作用在字符串上,所以调用mean()会抛出类型错误
  • np.mean['Age']的写法本身不正确:一方面np.mean是函数需要用圆括号传参,另一方面你当前读取的普通numpy数组不支持按列名索引,只有结构化数组、pandas DataFrame这类结构才支持列名访问
解决方案

方案1:转换现有数组的年龄列为数值类型计算

无需修改读取逻辑,直接对提取的年龄列做类型转换后计算即可:

import numpy as np
# 提取索引为1的第二列(年龄列),转换为整数类型后计算平均值
age_col = emp_code[:, 1].astype(int)
age_mean = age_col.mean()
print(age_mean)

方案2:读取CSV时指定类型,支持按字段名访问

如果你的CSV有表头行,可在读取时指定字段名和对应类型,后续就可以直接按列名调用计算:

from numpy import genfromtxt
emp_code = genfromtxt('C:\\Users\\V\\Desktop\\data science\\DS1_C4_S1_Numpy_PracticeBrief.csv', 
                      delimiter=',', 
                      dtype=[('id', int), ('age', int)], # 按顺序指定每列的字段名和数据类型
                      skip_header=1) # 如果CSV第一行是表头就保留该参数,没有表头则删除
# 直接按字段名计算平均值
age_mean = emp_code['age'].mean()

方案3:使用pandas实现更简便的列操作

如果允许引入pandas库,按列名处理数据会更直观:

import pandas as pd
df = pd.read_csv('C:\\Users\\V\\Desktop\\data science\\DS1_C4_S1_Numpy_PracticeBrief.csv')
# 此处的Age替换为你CSV中年龄列的实际表头名即可
age_mean = df['Age'].mean()
print(age_mean)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:06:00