1

これが私のコードです:

if __name__ == '__main__':
  fid = open ('200502.txt')
  data = fid.readlines()
  data = map (string.strip, data)
  x = []
  y = [] 
  da = []
  for d in data:
    s = d.split()
    x.append(float(s[0])/10000.0)
    y.append(float(s[1])/10000.0)
    da.append(float(s[2]))

実行すると、次のようになりました。

Traceback (most recent call last):
  File "plot_data.py", line 286, in ?
    x.append(float(s[0])/10000.0)
IndexError: list index out of range

200502.txt (840kb) ファイルは次のようになります。

1131087 224529 3.923   
1131096 224529 3.958 
1131106 224530 3.897    
1131116 224530 3.917   
1131126 224530 3.847 
(....)
4

2 に答える 2

3

これは、データをロードする脆弱な方法です。私の推測では、ファイルの末尾にある改行などで壊れていると思います。とにかく、numpy.loadtxt代わりにファイルをロードする必要があります(またはcsvにアクセスできない場合はモジュールnumpy)。

それを始めるには:

>>> import numpy
>>> data = numpy.loadtxt('/tmp/200502.txt')
>>> xs = data.T[0]/10000.
>>> ys = data.T[1]/10000.
>>> da = data.T[2]
于 2012-08-02T03:26:34.837 に答える
0

入力ファイルに、データを含まない要素が少なくとも 1 つあります。を反復処理してdataおり、要素の 1 つが から長さ 0 のリストを生成していd.split()ます。また、より構造化された組織にデータをロードすることを検討することをお勧めします。のようなものloaded_data = [zip(('x', 'y', 'da'), d.split()) for d in data]

于 2012-08-02T03:26:56.683 に答える