Python使用不等长列表绘制matplotlib小提琴图出现numpy报错如何解决
错误原因
你遇到的报错根本原因是传入np.percentile的data为不等长嵌套列表,numpy无法将其转换为标准二维数值数组,仅能生成一维object类型数组,因此指定axis=1会触发轴越界错误。同时np.percentile本身不支持dtype入参,你后续添加dtype参数的修改方式也会直接报错。
修复方案
仅需将原计算分位数的代码行替换为逐个子列表单独计算分位数即可,无需修改其他逻辑:
# 替换原错误行:quartile1, medians, quartile3 = np.percentile(data, [25, 50, 75], axis=1) quartiles = [np.percentile(sublist, [25, 50, 75]) for sublist in data] quartile1, medians, quartile3 = zip(*quartiles)
修改完成后即可正常运行,完美适配不等长数据的需求,不会再触发numpy相关报错。
内容的提问来源于stack exchange,提问作者con
相关产品推荐
相关产品推荐

