我想使用python找到数字的两个平方根。我的简单代码是:
#!/usr/bin/env python
import numpy as np
x = 4.0
print 'Square roots of',x,'are:',np.sqrt(x)
给出了以下输出:
Square roots of 4.0 are: 2.0
但我想在答案中看到-2.0
,即4的平方根将是+/- 2,而不仅仅是+2。
在更广泛的问题中,我想绘制一个函数f(x)=sqrt(x)
。我想一次捕捉抛物线的两个分支。现在代码是:
#!/usr/bin/env python
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0.0, 16.0, 0.2)
f = np.sqrt(x)
plt.plot(x, f)
plt.show()
不绘制负y轴的值。是否可以在不玩任何技巧的情况下这样做(例如,第二次为其分配减号)?我没有必要使用numpy
。
感谢。
答案 0 :(得分:3)
我认为OP对此有点困惑:4的平方根是+/- 2,为什么numpy.sqrt
只给出正数?
但这在功能描述中有明确定义:
Returns
-------
y : ndarray
An array of the same shape as `x`, containing the positive
square-root of each element in `x`. ...
您可以在python shell中使用numpy.info(numpy.sqrt)
来查看此消息。
由于每个正数都有一对平方根,如果要打印全部,只需将print
语句更改为:
print 'Square roots of',x,'are: +/-',np.sqrt(x)