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

numpy.average报错TypeError: ufunc 'true_divide'问题求助

解决numpy.average触发的TypeError问题

报错根源

你传入np.average的是pandas DataFrame对象,numpy的average函数对多维DataFrame的类型适配性较差,即便之前能正常运行,也可能因数据加载的细微变化(如某行数据类型异常)触发类型错误。

解决方案

方案1:使用pandas内置mean方法(推荐)

pandas对自身的DataFrame/Series类型支持更完善,无需转换为numpy数组即可直接计算:

import numpy as np
import pandas as pd

url = 'https://raw.githubusercontent.com/m23chaffee/DS100-Repository/main/Aluminum%20Alloy%20Data%20Set.csv'
data = pd.read_csv(url, index_col=0, parse_dates=[0])

# 提取为一维Series(单括号)而非二维DataFrame(双括号)
elastic = data['m_elastic']
# 过滤空值
elastic = elastic.dropna()
# 保存排序结果(原代码未赋值,排序不会生效)
elastic = elastic.sort_values()

# 用pandas自带mean计算平均值
avg = elastic.mean()
print("The mean of the aluminum alloy is", avg)

方案2:转为numpy一维数组后计算

若坚持使用numpy,需将DataFrame转为一维数组:

# 基于原代码的elastic(DataFrame)转为一维数组
elastic_array = elastic.values.flatten()
avg = np.average(elastic_array)
print("The mean of the aluminum alloy is", avg)

额外注意点

原代码中elastic.sort_values(['m_elastic'])未将排序结果赋值给变量,排序操作不会生效,需补充赋值:elastic = elastic.sort_values(['m_elastic'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:10:40