私は2つの値でロードしたデータセットから持っています。
x1=5.904e-16
と
x1=1.048576e-14
確かにこれらは小さな数字ですが、私がやりたいのはそれらを平均することだけです。
avg = 1/2*(x1+x2)
しかし、これは avg = 0 を与えます
アー!
私は2つの値でロードしたデータセットから持っています。
x1=5.904e-16
と
x1=1.048576e-14
確かにこれらは小さな数字ですが、私がやりたいのはそれらを平均することだけです。
avg = 1/2*(x1+x2)
しかし、これは avg = 0 を与えます
アー!
Python 2 を使用していると仮定します。
両方の引数が整数の場合、Python 2 は整数除算を使用します。つまり、結果も整数になります。例えば:
print 1/2
# 0
print 5/2
# 2
これを克服するには、float に相当する ( 0.5
) を使用するか、除算の引数の 1 つ (1
またはのどちらでも2
構いません) を float に変更して、float も返すようにします。
print 1.0/2
# 0.5
print 1/2.0
# 0.5
print 1.0/2.0
# 0.5
nneonneo が述べたように、次のように合計を除算に直接入れることもできます。
(x1+x2)/2.0
これにより、望ましい結果も得られます。
avg = 0.5*(x1+x2)
どうやらPythonの1/2は0.5に等しくないため、機能しましたが、1/2は2分の1であり、小数点以下の値も表示されないため、それを望んでいないと想定されます。