使用numpy的median计算中位数时如何让整数结果输出3而非3.0
修复numpy中位数函数整数结果输出带.0的问题
问题表现
原有实现代码存在语法错误(np.median(x)末尾多了多余句点),且np.median接口默认返回浮点类型值:当中位数为整数时会输出3.0这类带小数位的结果,不符合输出纯整数的预期;中位数为非整数时输出正常。
原代码:
import numpy as np def median(x): y = np.median(x). return y
调整方案
注意首先要删除原代码行尾的多余句点,否则会直接触发语法错误无法运行。之后增加整数判断逻辑:如果计算出的中位数值为整数,转换为整型返回,非整数场景直接返回原浮点结果,不影响原有正确逻辑。
修正后代码:
import numpy as np def median(x): y = np.median(x) if y.is_integer(): return int(y) return y
测试结果
- 输入
[1,2,3,4,5],中位数为3,函数返回3,符合预期 - 输入
[1,2,3,4],中位数为3.5,函数返回3.5,表现正常
内容的提问来源于stack exchange,提问作者Dazzling_muski
相关产品推荐
相关产品推荐

