電子書籍の厳選無料作品が豊富!

Pythonについてなのですが、小数点がある数値をfor文を使って繰り返し足していきたいんですがどうやってやればいいのでしょうか?
小数点がある数値のfor文の使い方が分かりません。

質問者からの補足コメント

  • 標準偏差を100個くらい求めてその数値を使って平均を出したい感じです。
    標準偏差が小数点なので繰り返し足すことができず、困ってる感じです。

      補足日時:2020/10/10 02:28

A 回答 (7件)

足すだけなら


sum = 0
for x in 数値のリスト:
sum = sum + x

あるいは標準関数の sum で sum(数値のリスト)

と書くだけだけど、悩んでいるところが見えないです。

「小数点のある数字」(浮動小数点型のこと?)では何故
for ループを作れないと考えてしまうのか
そこのところを教えてください。

#単に配列や for in を知らないだけ?
    • good
    • 0

#4です。



書き忘れました。
『ここで平均を引いてはダメです。やっぱり桁落ちします。』の意味って分かりますか。平均を引いて足し続けると桁落ちするのは、誤差の期待値は0だからです。

標準偏差とか扱うのであれば、Pythonを学ぶ前に、まず統計を学んでいただきたいというのは、企業で統計を推進している私が常々思っていることです。
    • good
    • 0

#4です。



標準偏差の平均って、何をやりたいのですか。
分散には加法性があるから、通常は2乗和の平均(MSE)を使いますよ。
不偏分散の平方根が標準偏差だけど、それは不偏ではないですよ。

Python系の人って統計を知らないから、連中が書いたネット記事とかで得た知識で業務とか卒論をやると間違えますよ。ご注意あれ。
    • good
    • 0

企業で統計を推進する立場の者です。



桁落ちのことであれば数値計算では常識ですよね。

例えば、φ=70mmの削り加工をするとき、精度をミクロン台で管理するときに、何も考慮せず、そのまま足し続ければ桁落ちしますし、2乗すれば小数点以下はもっと小さくなります。
足し続けることにより上の桁が大きくなると、下の桁は相対的にはめちゃくちゃ小さくなるわけで、浮動小数点演算では下の桁の精度確保が深刻になります。

技術者だったら、これを管理値として扱うときは上の桁を捨て1000分台の数値だけを1000倍して使います。
まずは、そのような変数変換を行ってはいかがでしょうか。例えば上の例であれば、69mmを引いて1000倍した値にするという変換です。
ここで平均を引いてはダメです。やっぱり桁落ちします。

ただ、100個程度であれば問題ないとは思いますがね。
ビッグデータの数値処理では、にわかデータサイエンティストが陥りやすいトラップですね。

詳しくは、「数値計算法」とか「数値計算の常識」とか、その手の本が出ています。Python系の本やブログはR系と違って統計のことをあまり学んでいない連中が書いているから、結構ヤバいです。
    • good
    • 0

「標準偏差が小数点なので繰り返し足すことができず」ってどういうことなんだろう. 具体的に, 例えばどう書いてどのような問題が生じて

いるのかは書いてもらえないだろうか.
    • good
    • 0

その標準偏差、ってリストになってんのかしら?


だったらsum()使って

sum(標準偏差のリスト)

で計算すれば一発ですよ。
    • good
    • 0

例えば


acc = 0
for i in range(10):
 acc += 0.1

とか?

まあ、具体例が無いんでイマイチ何がやりたいのかは分かりませんが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます

お礼日時:2020/10/10 02:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!