Python:想要得到(加号和减号)平方根

时间:2014-07-27 14:27:34

标签: python python-2.7 numpy sqrt

我想使用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

感谢。

1 个答案:

答案 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)