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

Numpy求平均触发ufunc 'divide'错误,求问题排查与解决

问题分析与解决方法

问题根源

你当前的代码存在逻辑错误:

  • 你创建的fuel_typesx、fuel_typesz等数组,存储的是燃料类型的字符串值(比如重复的'X'、'Z'),而np.average()只能对数值类型数据计算平均值,字符串无法进行除法运算,因此触发了类型不兼容的报错。
  • 你的需求是计算不同燃料类型对应的平均油耗,但你错误地对燃料类型本身求平均,而非对应燃料类型的油耗数据。

修正后的代码

通过布尔索引筛选对应燃料类型的油耗数据,再计算平均值:

import numpy as np
import pandas as pd

cars = pd.read_csv('data/co2_emissions_canada.csv')
cars_fuel_types = cars['Fuel Type'].to_numpy()
cars_fuel_consumption = cars['Fuel Consumption Comb (L/100 km)'].to_numpy()

# 计算普通汽油(X)的平均油耗
fuel_x_consumption = cars_fuel_consumption[cars_fuel_types == 'X']
print(np.average(fuel_x_consumption))

# 计算 premium gasoline(Z)的平均油耗
fuel_z_consumption = cars_fuel_consumption[cars_fuel_types == 'Z']
print(np.average(fuel_z_consumption))

# 计算乙醇(E)的平均油耗
fuel_e_consumption = cars_fuel_consumption[cars_fuel_types == 'E']
print(np.average(fuel_e_consumption))

# 计算柴油(D)的平均油耗
fuel_d_consumption = cars_fuel_consumption[cars_fuel_types == 'D']
print(np.average(fuel_d_consumption))

更简洁的Pandas分组实现

既然已经使用Pandas,直接用分组功能可以更高效完成需求,无需手动处理Numpy数组:

import pandas as pd

cars = pd.read_csv('data/co2_emissions_canada.csv')
# 按燃料类型分组,计算每组的平均油耗
fuel_avg_result = cars.groupby('Fuel Type')['Fuel Consumption Comb (L/100 km)'].mean()
print(fuel_avg_result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:45:38