Python超初心者です。
ランダムな文字数が並ぶテキスト(数字の範囲は0~100)
14.2
0.1
95.3
45.6
・
・
・
89.6
といった数値が約1000万行ほどあります。
このテキストから、00.1,0.10.2,0.20.3・・・99.9100
といった具合に0.1刻みずつの範囲内にある数値の個数を数えるプログラムとして
以下のようなものを書きました。
import sys
import numpy as np
input_file=[]
input_file_name = sys.argv[1]
with open(input_file_name, 'r') as f:
for line in f:
items = line.split()
input_file.append(float(items[0]))
a = np.arange(0,100,0.1)
b = np.arange(0.1,100.1,0.1)
for i,j in zip(a,b):
print(i,j)
print(sum(i<X<=j for X in input_file))
しかし、このプログラムだと計算を行うのに非常に時間がかかってしまい、
一時間ほど待っても出力されませんでした。
おそらくループ回数が多すぎることが原因だと思います。
そこで、もうすこし早く計算が進むようなプログラムを書きたいのですが、
なかなか思いつきません。
どのようなプログラムがいいのか、ご指導していただけませんでしょうか?
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。