Pythonであるサイトにxhrした時に6.2E-7というように指数で値が取れます。
これを0.00000062として扱いたいのですが、どのようにすればよいでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

float関数では、指数表現の文字列でも正しく数値に変換してくれます


a='6.2E-7'
b=float(a) #-> b=6.2e-07

既に数値になっているのでしたら、 6.2E-7は何もしなくても 0.00000062 として扱われます。
'0.00000062' という文字列にしたいのなら、 書式 % 値 で変換をしてください。
c= "%.10f" % b # c='0.0000006200'
    • good
    • 3
この回答へのお礼

返事が遅くなり申し訳ありません。

教えて頂いた通りの方法で出来ました。
ありがとうございました。

お礼日時:2014/11/08 18:05

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルで計算すると2.43E-19などと表示される。Eとは何ですか?

よろしくお願いします。
エクセルの回帰分析をすると有意水準で2.43E-19などと表示されますが
Eとは何でしょうか?

また、回帰分析の数字の意味が良く分からないのですが、
皆さんは独学されましたか?それとも講座などをうけたのでしょうか?

回帰分析でR2(決定係数)しかみていないのですが
どうすれば回帰分析が分かるようになるのでしょうか?
本を読んだのですがいまいち難しくて分かりません。
教えてください。
よろしくお願いします。

Aベストアンサー

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるための指数表記のことですよ。
・よって、『2.43E-19』とは?
 2.43×1/(10の19乗)で、
 2.43×1/10000000000000000000となり、
 2.43×0.0000000000000000001だから、
 0.000000000000000000243という数値を意味します。

補足:
・E+数値は 10、100、1000 という大きい数を表します。
・E-数値は 0.1、0.01、0.001 という小さい数を表します。
・数学では『2.43×10』の次に、小さい数字で上に『19』と表示します。→http://ja.wikipedia.org/wiki/%E6%8C%87%E6%95%B0%E8%A1%A8%E8%A8%98
・最後に『回帰分析』とは何?下の『参考URL』をどうぞ。→『数学』カテゴリで質問してみては?

参考URL:http://ja.wikipedia.org/wiki/%E5%9B%9E%E5%B8%B0%E5%88%86%E6%9E%90

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるた...続きを読む

Q[python] 文字列を変数名として使いたい

すいません教えて下さい。

pythonで以下の変数をセットしています。

aaa = 'hensu_name'

aaaで指定した'hensu_name'に対して値を入れたい場合は
どのように実装すればよいでしょうか?
(aaaに入れたstringを変数名にしたい)

よろしくお願いします。

Aベストアンサー

exec関数を使って文字列をコードとして実行すれば、それっぽいことができるように思います。
あまりいい例を思いつかないですが、以下のような感じでしょうか?

aaa = "hensu_name"
src = aaa + " = 'hello'" #srcの中身は、"hensu_name = 'hello'"

exec(src)
print hensu_name #hello が表示される

src = "print " + aaa #srcの中身は、"print hensu_name"
exec(src) #hello が表示される


ただ、No.1の方がおっしゃっているように、あまりお勧めな方法ではありません。
文字列をコードとして実行してしまうので、少々危険な側面もあります。
悪意のあるコードを含む文字列を実行してしまうとか…。

Qapt-get install ****** でinstallしたものをuninstallするには?

御世話になります。
vncserverだけをinstallするつもりが
誤って
apt-get install vncとうってしまいました。
これをuninstallしたいのですが
どのようにすればよろしいでしょうか?

教えて下さい。

Aベストアンサー

# apt-get remove パッケージ名
では、設定ファイルは削除されずに残ります。

完全に削除するときは、
# apt-get --purge remove パッケージ名
です。

QPythonでテキストを行数指定して読み込む

Pythonの勉強を始めて4ヶ月ほどの者です。
今、コマンドライン(Winでのコマンドプロンプト、Linux系での端末など)からPythonでメールアドレスが書いてあるテキストを読み込み、そのアドレスにメールを送るプログラムを考えてます。
具体的には、address.txtというファイルに、
aaa.example@test.ne.jp
bbb.example@test.ne.jp
ccc.example@test.ne.jp
という風に記述してあるとします。(一行に一アドレスです。)
プログラムの部分(最初からではなく途中です)は、
print "Select the E-mail Address below"
a = open("Address.txt")
for i in a:
print i
to = raw_input(":")
とまできたんですが、自分としては読み込んだ「Address.txt」に書かれてるアドレスを行数ごとに指定して読み込みたいんです。つまりraw_input(":")に
1を入れたら1行目を指定→「aaa.example@test.ne.jp」
2を入れたら2行目を指定→「bbb.example@test.ne.jp」
3を入れたら3行目を指定→「ccc.example@test.ne.jp」
が選択されるようにし、変数toに代入されるようにしてSMTPモジュールのto_addrに引き渡すようにしたいのです。

ですが行数を指定してテキストを読み込むメゾットやオブジェクトが入ってるモジュールや関数はありますか?

Pythonは2.6.4と3.0.1の両方のバージョンが入ってます。できれば両方で動かしたいので3.0.1で仕様の変更があったら教えてもらえるとありがたいです。
OSはメインがWinXPSP3、サブ(テスト用、VMWare使用)にUbuntu9.04(Pythonは2.6系だったと思います。)

Pythonの勉強を始めて4ヶ月ほどの者です。
今、コマンドライン(Winでのコマンドプロンプト、Linux系での端末など)からPythonでメールアドレスが書いてあるテキストを読み込み、そのアドレスにメールを送るプログラムを考えてます。
具体的には、address.txtというファイルに、
aaa.example@test.ne.jp
bbb.example@test.ne.jp
ccc.example@test.ne.jp
という風に記述してあるとします。(一行に一アドレスです。)
プログラムの部分(最初からではなく途中です)は、
print "Select the E-mail Address below"...続きを読む

Aベストアンサー

以下、字下げを表現するのに全角空白を使っています。コピーしたら置き換えましょう。
a = open("Address.txt")
lines = []
for line in a:
 print line
 lines.append(line)
to = raw_input(":")
addr = lines[to+1]
これでaddrに指定行のアドレスが入るはずです。

QPythonで元CSVファイルの一部列を抜き出す

Python初心者です。どうぞよろしくお願い致します。

インターネットを色々検索していますが苦戦していますので投稿させてください。

下記のような元CSVファイルから、不要な列だったり、空白の列をカットして
必要な列だけのCSVとして新たなファイルとして出力したいと思っています。

元CSVファイル (上からタイトル行とサンプル2行抜き出し)※Excelでの画像添付しています

ID,URI,body,text_author,text_flg,text_source,text_updatetime,text_url,DATE,DATE_2
1, csv://10.182.XXX, "comment A, comment B, comment C", Mr.A, , SourceA, , http://www.yahoo.co.jp, 1.37667E+12, 20130817
2, csv://10.183.XXX, "comment D, comment E, comment F", Mr.B, , SourceB, , http://www.goo.co.jp, 1.37667E+12, 20130817

(期待する出力結果)
body,text_author,text_source,text_url,DATE_2
"comment A, comment B, comment C", Mr.A, SourceA, http://www.yahoo.co.jp, 20130817
"comment D, comment E, comment F", Mr.B, SourceB, http://www.goo.co.jp, 20130817

つまり、元のファイルの列の(一番左がRow(0)として)Row(2),Row(3), Row(5), Row(7), Row(9)だけを
各行抜き出して新たなCSVファイルとして出力したいと思っています。
ちなみに行数は1000の場合も10000の場合もあります。

最初は、gawkで処理しようと思っていましたが、抜き出したいうちのひとつRow(2)には、
不定期で複数のカンマが含まれているため、gawkでは正しく列分類ができず、
Pythonを学習がてらうまくできないかと思っています。

実は締め切りが近いので結構あせっているのですが、(自分のセンスのなさにヘキヘキ・・)
どなたかこのようにCSVを処理できるPythonのやり方を教えて頂けないものでしょうか。

どうぞよろしくお願い致します。

Python初心者です。どうぞよろしくお願い致します。

インターネットを色々検索していますが苦戦していますので投稿させてください。

下記のような元CSVファイルから、不要な列だったり、空白の列をカットして
必要な列だけのCSVとして新たなファイルとして出力したいと思っています。

元CSVファイル (上からタイトル行とサンプル2行抜き出し)※Excelでの画像添付しています

ID,URI,body,text_author,text_flg,text_source,text_updatetime,text_url,DATE,DATE_2
1, csv://10.182.XXX, "comment A, comment B,...続きを読む

Aベストアンサー

#1補足について。

出力されたCSVを、テキストエディタで開いてください。
# Excelで開くと、中身が解釈されて、どんな状態か判断しずらくなります。
インタプリタでの出力と同じ内容になっているはずです。

インタプリタでの結果は
comment A, comment B, comment C Mr.A SourceA http://www.yahoo.co.jp 20130817
ですから、CSVとして解釈すると
comment A
comment B
comment C Mr.A SourceA http://www.yahoo.co.jp 20130817
の3項目となります。

出力させたいのは、
"comment A, comment B, comment C",Mr.A,SourceA,http://www.yahoo.co.jp,20130817
というのでは?

CSVで "~" と"でくくってあったら、その中身が項目の本体です。ですから、"を取った状態で取り込むのが普通です。
その状態が row[2]です。
逆に、CSVに出力するなら、 ""でくくらないと、項目内の文字としてのカンマではなく、項目区切りのカンマだと解釈されてしまいます。
ですから、"で括って出力するようにします。例えば、 '"'+row[2]+'"' とか。

printに,で複数の項目を指定すると、それぞれの間をスペースで区切って出力されます。
CSVとしてカンマ区切りにするなら、次の方法のいずれかを使います。
・文字列のjoinメソッドを使う(csvモジュールのマニュアルのサンプロコードにある例)
・数が固定なら、%で書式指定する
例) print '"%s",%s,%s,%s,%s' %(row[2], row[3], row[5], row[7], row[9])
・print関数のsep=で指定する。(Python3,あるいは2.6以降でprint関数有効時)
・csv.writerを使う

#1補足について。

出力されたCSVを、テキストエディタで開いてください。
# Excelで開くと、中身が解釈されて、どんな状態か判断しずらくなります。
インタプリタでの出力と同じ内容になっているはずです。

インタプリタでの結果は
comment A, comment B, comment C Mr.A SourceA http://www.yahoo.co.jp 20130817
ですから、CSVとして解釈すると
comment A
comment B
comment C Mr.A SourceA http://www.yahoo.co.jp 20130817
の3項目となります。

出力させたいのは、
"comment A, comment B, comment C",Mr.A...続きを読む

Qエクセル STDEVとSTDEVPの違い

エクセルの統計関数で標準偏差を求める時、STDEVとSTDEVPがあります。両者の違いが良くわかりません。
宜しかったら、恐縮ですが、以下の具体例で、『噛み砕いて』教えて下さい。
(例)
セルA1~A13に1~13の数字を入力、平均値=7、STDEVでは3.89444、STDEVPでは3.741657となります。
また、平均値7と各数字の差を取り、それを2乗し、総和を取る(182)、これをデータの個数13で割る(14)、この平方根を取ると3.741657となります。
では、STDEVとSTDEVPの違いは何なのでしょうか?統計のことは疎く、お手数ですが、サルにもわかるようご教授頂きたく、お願い致します。

Aベストアンサー

データが母集団そのものからとったか、標本データかで違います。また母集団そのものだったとしても(例えばクラス全員というような)、その背景にさらならる母集団(例えば学年全体)を想定して比較するような時もありますので、その場合は標本となります。
で標本データの時はSTDEVを使って、母集団の時はSTDEVPをつかうことになります。
公式の違いは分母がn-1(STDEV)かn(STDEVP)かの違いしかありません。まぁ感覚的に理解するなら、分母がn-1になるということはそれだけ結果が大きくなるわけで、つまりそれだけのりしろを多くもって推測に当たるというようなことになります。
AとBの違いがあるかないかという推測をする時、通常は標本同士の検証になるわけですので、偏差を余裕をもってわざとちょっと大きめに見るということで、それだけ確証の度合いを上げるというわけです。

Qシェルスクリプトでファイル内の数値文字列を数値として扱うには

失礼します。
シェルスクリプトでファイル内のテキスト(数値文字列)を取得して、それを使って計算するにはどうすれば良いでしょうか?

str:ファイル内のテキスト(数値文字列)

res=$(( $str + 1 ))

・エラー
")syntax error: invalid arithmetic operator (error token is "


よろしくお願いします。

Aベストアンサー

bashをご使用と判断して

res=$(( $str + 1 ))
ではなく、
res=$(( str + 1 ))
だと思います。

> exprもやってみたのですが、処理が遅くなるので使いません。
興味があって以下のシェルで検証してみました。

#!/bin/bash

str=1
i=0

echo 'Using $((str + 1))'
date '+%H:%M:%S.%N'

while [ $i -lt 10000 ]
do
str=$(( str + 1))
i=`expr $i + 1`
done

date '+%H:%M:%S.%N'

exit

$ ./test.sh
Using $((str + 1))
09:18:46.290418000
09:18:56.929345000
これをexprに書き換えたところ
$ ./test2.sh
Using expr
09:19:00.302748000
09:19:19.259990000

exprだと19秒ですが、$(( 演算 )) だと10秒程度なので、演算が多くなれば確かにexprは不利ですね。

bashをご使用と判断して

res=$(( $str + 1 ))
ではなく、
res=$(( str + 1 ))
だと思います。

> exprもやってみたのですが、処理が遅くなるので使いません。
興味があって以下のシェルで検証してみました。

#!/bin/bash

str=1
i=0

echo 'Using $((str + 1))'
date '+%H:%M:%S.%N'

while [ $i -lt 10000 ]
do
str=$(( str + 1))
i=`expr $i + 1`
done

date '+%H:%M:%S.%N'

exit

$ ./test.sh
Using $((str + 1))
09:18:46.290418000
09:18:56.929345000
これをe...続きを読む

QMacターミナルで実行中のプログラムを中止するには?

Macのターミナルでプログラムを走らせているとき、
実行中のプログラムを一時停止したり中断・終了させるには
どうしたらいいでしょう?

Unixだと、Control+s とか Control +c とかでできますよね。
Macだと、それではできないみたいなんです。

基本的な質問ですみませんが、どなたか教えていただけないでしょうか。

Aベストアンサー

ごく普通にControl + Cで中断できますよ。

もしかしてControlキーをcommandやcapslockと押し間違えているとかいうことはありませんか?

Q相関係数についてくるP値とは何ですか?

相関係数についてくるP値の意味がわかりません。

r=0.90 (P<0.001)

P=0.05で相関がない

という表現は何を意味しているのでしょうか?
またMS Excelを使ってのP値の計算方法を教えてください。

よろしくお願い致します。

Aベストアンサー

pは確率(probability)のpです。全く相関のない数字を組み合わせたときにそのr値が出る確率をあらわしています。

統計・確率には100%言い切れることはまずありません。というか100%言い切れるのなら統計・確率を使う必要は有りません。
例えばサイコロを5回振って全て同じ目が出る確率は0.08%です。そんな時、そのサイコロを不良品(イカサマ?)と結論つけるとわずかに間違っている可能性が残っています。ただ、それが5%以下ならp=0.05でそのサイコロは正常ではないと結論付けます。
それが危険率です。(この場合はp=0.1%でもいいと思いますが)
相関係数においても相関の有無を結論つけるにはそのrが偶然出る確率を出すか、5%の確率ならrがどれぐらいの値が出るかを知っておく必要が有ります。

>r=0.90 (P<0.001)

相関係数は0.90と計算された。相関がないのに偶然r=0.90 となる確率は0.001以下だと言ってます。

>P=0.05で相関がない

相関がないと結論。(間違っている確率は5%以下)だと言ってます。

エクセルでの計算ですが、まず関数CORRELを使ってr値を出します。xデータがA1からA10に、yデータがB1からB10に入っているとして

r=CORREL(A1:A10,B1:B10)

次にそのr値をt値に変換します。

t=r*(n-2)^0.5/(1-r^2)^0.5

ここでnは組みデータの数です。((x1,y1),(x2,y2),・・・(xn,yn))
最後に関数TDISTで確率に変換します。両側です。

p=TDIST(t値,n-2,2)

もっと簡単な方法があるかも知れませんが、私ならこう計算します。(アドインの分析ツールを使う以外は)

pは確率(probability)のpです。全く相関のない数字を組み合わせたときにそのr値が出る確率をあらわしています。

統計・確率には100%言い切れることはまずありません。というか100%言い切れるのなら統計・確率を使う必要は有りません。
例えばサイコロを5回振って全て同じ目が出る確率は0.08%です。そんな時、そのサイコロを不良品(イカサマ?)と結論つけるとわずかに間違っている可能性が残っています。ただ、それが5%以下ならp=0.05でそのサイコロは正常ではないと結論付けます。
それが危険率です。(この場...続きを読む

Qpythonでバイナリデータを配列に読み込みたい

python初心者なので、できるだけお手柔らかにお願いします。
pythonのバージョンは2.7.3です。

=====================================================
あるバイナリデータ(test.bin)から、
2バイトずつ100*100の2次元配列に読み込ませたいのですが、
配列への読み込ませ方が分からず悩んでいます。
=====================================================


#### ここから sampleスクリプト(未完) ################

f = open("./test.bin", "rb")

x = 100
y = 100
bytesize = 2

data = f.read(bytesize*x*y)

array = [[0 for j in range(x)] for i in range(y)]
##############################################

上記の後、arrayの各要素に2byteずつ整数値としてデータを読み込ませたいのですが、
dataからarrayへの受け渡し方法が分からず悩んでいます。
かなり初歩的な質問かも知れませんが、ヒントでもいいので教えて下さい。

また、上記の時点で誤っていることがありましたら
ご教授お願いします。

python初心者なので、できるだけお手柔らかにお願いします。
pythonのバージョンは2.7.3です。

=====================================================
あるバイナリデータ(test.bin)から、
2バイトずつ100*100の2次元配列に読み込ませたいのですが、
配列への読み込ませ方が分からず悩んでいます。
=====================================================


#### ここから sampleスクリプト(未完) ################

f = open("./test.bin", "rb")

x = 100
y = 100
bytesize = 2

data = f.read(bytesize*x...続きを読む

Aベストアンサー

http://docs.python.jp/2/library/stdtypes.html#file.read
にあるように、ファイルオブジェクトのreadはstringを返します。つまり、
data = f.read(bytesize*x*y)
なら、dataがstringです。
stringなので、Xバイト目の「文字」は
data[X]
で取り出せます。
これは、元のバイナリデータの1バイトを、対応する「文字」にしたものです。元のバイナリデータを得るには、逆変換する必要があります。文字のコードを得るのには、ord関数( http://docs.python.jp/2/library/functions.html#ord )を使います

ord(data[X])

2バイトから16bitの整数を取るには、まず、2バイトそれぞれの値を得ます
a0=ord(data[X0])
a1=ord(data[X1])
ここで、上位を8ビット左へシフトして、下位とのORを取れば、16ビットになります。
ただ、上記のa0,a1のどちらが上かは、どう保存したかによるので、今ある情報だけでは判断できません。
# a0が上なら
Y=a0 << 8 | a1

また、符号有り16bit整数だと、もう少し複雑になります。


全てのi,jについて、array[i][j]に対応するバイト位置 X0,X1 を求め、計算した値を代入する、という流れになります

http://docs.python.jp/2/library/stdtypes.html#file.read
にあるように、ファイルオブジェクトのreadはstringを返します。つまり、
data = f.read(bytesize*x*y)
なら、dataがstringです。
stringなので、Xバイト目の「文字」は
data[X]
で取り出せます。
これは、元のバイナリデータの1バイトを、対応する「文字」にしたものです。元のバイナリデータを得るには、逆変換する必要があります。文字のコードを得るのには、ord関数( http://docs.python.jp/2/library/functions.html#ord )を使います

ord(data[X])...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング