开三次方,很容易想到 a**(1/3)。但是,当a时负数时,这么做开出来的是复数。
这其实和优先级有关系,(1/3)先运行得到0.3333333333333333,然后再运行指数运算。
可以用numpy的cbrt()函数来解决。
np.cbrt(-8)=-2.0
例如作图:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-5,5,100,dtype=float)
y = np.cbrt(x)
plt.plot(x,y)
ax = plt.gca()
ax.spines['right'].set_color('none') #隐藏右边线
ax.spines['top'].set_color('none') #隐藏上边线
ax.spines['bottom'].set_position(('data',0)) #改变x轴位置