python±的加号/减号运算符

时间:2015-01-10 02:27:29

标签: python numpy scipy ipython sympy

我正在寻找在python 2或3中执行加/减运算的方法。我不知道命令或运算符,我找不到命令或运算符来执行此操作。

我错过了什么吗?

7 个答案:

答案 0 :(得分:11)

另一种可能性:uncertainties是用于进行具有误差容限的计算的模块,即

(2.1 +/- 0.05) + (0.6 +/- 0.05)    # => (2.7 +/- 0.1)

将写为

from uncertainties import ufloat

ufloat(2.1, 0.05) + ufloat(0.6, 0.05)

编辑:我得到了一些奇怪的结果,经过多一点玩这个后我弄清楚了原因:指定的误差不是公差(工程蓝图中的硬附加限制)但是标准偏差值 - 这就是上述计算结果的原因

ufloat(2.7, 0.07071)    # not 0.1 as I expected!

答案 1 :(得分:5)

如果你碰巧使用matplotlib,你可以打印类似于Latex的数学表达式。对于+/-符号,您可以使用:

print( r"value $\pm$ error" )

r将字符串转换为原始格式,而$ -signs位于字符串中是数学方程式的部分。除非使用正确的代码明确指出,否则此部分中的任何单词都将使用不同的字体,并且它们之间不会有空格。这可以在matplotlib documentation的相关页面上找到。

很抱歉,如果这个太小众了,但我在这个问题上试图找到这个答案。

答案 2 :(得分:2)

我认为你想要这样的等式;

enter image description here

除非您不使用SymPy,否则没有操作员,只有您可以做if语句并查找每个乘数。

答案 3 :(得分:2)

如果要打印±符号,请使用:

print(u"\u00B1")

答案 4 :(得分:1)

SymPy中还没有这样的对象(如你所见,有一个问题暗示一个https://github.com/sympy/sympy/issues/5305)。但是,模仿并不难。只需创建一个符号,并在结尾分别用+1和-1交换它。像

pm = Symbol(u'±') # The u is not needed in Python 3. I used ± just for pretty printing purposes. It has no special meaning.
expr = 1 + pm*x # Or whatever
# Do some stuff
exprpos = expr.subs(pm, 1)
exprneg = expr.subs(pm, -1)

您也可以从一开始就跟踪两个方程式。

答案 5 :(得分:1)

而不是计算像

这样的表达式
s1 = sqrt((125.0 + 10.0*sqrt(19)) / 366.0)
s2 = sqrt((125.0 - 10.0*sqrt(19)) / 366.0)

你可以使用

pm = numpy.array([+1, -1])
s1, s2 = sqrt((125.0 + pm * 10.0*sqrt(19)) / 366.0)

答案 6 :(得分:0)

代替计算表达式

s1 = sqrt((125.0 + 10.0*sqrt(19)) / 366.0)
s2 = sqrt((125.0 - 10.0*sqrt(19)) / 366.0)

您可以使用

r = 10.0*sqrt(19)
s1, s2 = (sqrt((125.0 + i) / 366.0) for i in (r, -r))

这是基于Nicoanswer,但是使用生成器表达式而不是NumPy