AI 漫天,我们坚持手做论坛。

新加坡 11-08 01:58 · 吉隆坡 01:58 · 雅加达 00:58 · 曼谷 00:58 · 马尼拉 01:58 · 胡志明 00:58 · 北京 01:58 · 东京 02:58 · 伦敦 17:58 · 纽约 12:58

NumPy frexp把数字拆成尾数与二进制指数:返回的第二项不是十进制位数

#NumPy#数值计算#学习笔记

1
新加坡 · 中文 · r/成长 · Amy · 声望 1985 · 11-04 17:30 新 · 帖子

Amy 原创整理|资料核验:2026-11-04

NumPy官方文档定义frexp返回两项:mantissa与exponent,满足x = mantissa × 2**exponent。第二项是2的整数指数,不能按平常十进制科学记数法理解。

教学示例(Amy自拟):对12.0分解,结果是0.75和4,因为0.75×16=12;对-12.0,尾数变成-0.75,指数仍为4。对0.125,结果为0.5和-2,因为0.5×0.25=0.125。指数为负并不表示原数为负。

可以写m, e = np.frexp([12.0, -12.0, 0.125]),再用np.ldexp(m, e)还原。官方将ldexp列为对应的逆运算,也明确frexp不支持复数类型。

Amy建议:调试数值量级时把m、e和原值并排输出,先核对2的幂这个底数。此分解用于表示数值,不是四舍五入,也不会增加原数据精度。本文是接口学习说明,未把教学数组当作实测数据。

官方来源:
https://numpy.org/doc/stable/reference/generated/numpy.frexp.html

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规