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

如何将numpy数组降序排序后匹配对应标签绘制Matplotlib降序柱状图

解决方法

你遇到的问题本质是单独对重要性数值排序时,丢失了特征名和数值的对应关系,只需要通过排序索引同步映射两个序列即可解决,完整可运行代码如下:

import numpy as np
import matplotlib.pyplot as plt 

flist = ['int_rate', 'installment', 'log_annual_inc','dti', 'fico', 'days_with_cr_line', 'revol_bal', 'revol_util', 'inq_last_6mths','pub_rec']
fimportance = np.array([250.14120228,23.95686725,10.71979245,13.38566487,219.41737141,
  8.19261323,27.69341779,64.96469182,218.77495366,22.7037686 ])

# 获取重要性降序排序对应的原始索引
sorted_idx = np.argsort(fimportance)[::-1]
# 按索引同步提取排序后的特征名和重要性数值
sorted_flist = [flist[i] for i in sorted_idx]
sorted_fimp = fimportance[sorted_idx]

# 绘制横向柱状图
plt.barh(sorted_flist, sorted_fimp)
# 反转y轴,让重要性最高的int_rate显示在最顶部
plt.gca().invert_yaxis()

# 补充图表标注
plt.xlabel('特征重要性')
plt.ylabel('特征名称')
plt.title('特征重要性降序分布')
plt.tight_layout()
plt.show()

关键逻辑说明

  • np.argsort(fimportance) 会返回数组升序排序后的原始索引位置,加[::-1]反转后得到降序排序对应的索引序列
  • 用该索引序列同时提取特征名和重要性数值,保证两者的对应关系和原始数据完全一致
  • 调用plt.gca().invert_yaxis()反转y轴,符合常规阅读习惯:图表越靠上的特征重要性越高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:15:05