web-dev-qa-db-ja.com

python±のプラス/マイナス演算子

python 2または3でプラス/マイナス演算を行う方法を探しています。コマンドまたは演算子がわからず、これを行うコマンドまたは演算子が見つかりません。

何か不足していますか?

8

別の可能性: ncertainties は、エラー許容値を使用して計算を行うためのモジュールです。

(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!
12
Hugh Bothwell

たまたまmatplotlibを使用している場合、Latexの場合と同様の数式を出力できます。 +/-記号には、次を使用します。

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

Rは文字列を生の形式に変換し、$記号は数学的な方程式である文字列の部分にあります。この部分にある単語はすべて異なるフォントで表示され、正しいコードで明示的に示されていない限り、単語間に空白はありません。これは matplotlibドキュメント の関連ページにあります。

これがニッチすぎる場合は申し訳ありませんが、私はこの質問に出くわしてこの答えを見つけようとしました。

5
Orange Pukeko

±記号を印刷する場合は、次を使用します。

print(u"\u00B1")
5
mimoralea

次のような式を計算する代わりに

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)
2
Nico Schlömer

このような方程式にそれが必要だと思います。

enter image description here

SymPy を使用しない限り、そのための演算子はありません。あなただけがifステートメントで各乗数を見つけます。

2
user4435153

SymPyにはそのようなオブジェクトはまだありません(見たように、1つを示唆する問題があります 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)

また、最初から2つの方程式を追跡することもできます。

1
asmeurer