【发布时间】:2020-12-22 15:18:22
【问题描述】:
当尝试将负数(例如 np.sin(5))提高到小于 1 的任意数量级(例如 1/3)时,即使使用 np.power 也会导致错误。但是为什么会这样?如何避免输出真实答案(例如-0.9861162244048773)?
import numpy as np
np.sin(5)
#Out: -0.9589242746631385
(np.sin(5))**(3)
#Out: -0.881765166036633
(np.sin(5))**(1/3)
__main__:1: RuntimeWarning: invalid value encountered in double_scalars
np.power(np.sin(5),3)
#Out: -0.881765166036633
np.power(np.sin(5),1/3)
__main__:1: RuntimeWarning: invalid value encountered in power
#Out: nan
#The correct answer sought to (np.sin(5))**(1/3) is -0.9861162244048773
-0.9861162244048773*-0.9861162244048773*-0.9861162244048773 == np.sin(5)
#Out: True
【问题讨论】:
标签: python numpy exponent negative-number