5

読み取る必要があるデータ ファイルがあります。Pythonでファイルを読み取るには、次のようなことをしなければならないことを知っています:

file = open(fileLocaion, 'r+')

しかし、誰が特別な読み取りを行うのかわかりません。私が持っているデータは列にあります。したがってx、ある列のy値と別の列の値で、上部にヘッダーがあります。データ(私のテキストファイルa.txt)は次のようになります

 Charge (1x), Ch A, Run #1
 Time ( s ) Charge (1x) ( µC )
 0.0000 0.021
 0.1000 0.021
 0.2000 0.021
 0.3000 0.021
 0.4000 0.021
 0.5000 0.021
 0.6000 0.021

したがって、最初の時間の値は0.0000であり、最初の料金の値は0.021です。matplotlibこれを Python に取り込んでプロットできるようにしたいと考えています。しかし、このデータを読み取る方法がわかりません。

4

2 に答える 2

8

matplotlib でプロットする場合、おそらく最も簡単なのはnumpy.loadtxt [docs]を使用することです。とにかく numpy がインストールされているためです。

>>> import numpy
>>> d = numpy.loadtxt("mdat.txt", skiprows=2)
>>> d
array([[ 0.   ,  0.021],
       [ 0.1  ,  0.021],
       [ 0.2  ,  0.021],
       [ 0.3  ,  0.021],
       [ 0.4  ,  0.021],
       [ 0.5  ,  0.021],
       [ 0.6  ,  0.021]])

skiprows=2ヘッダーをスキップするには、ここに追加する必要があることに注意してください。次に、時間d[:,0]と料金は次のとおりd[:,1]です。または、次のように明示的に取得できますloadtxt

>>> times, charges = numpy.loadtxt("mdat.txt", skiprows=2, unpack=True)
>>> times
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6])
>>> charges
array([ 0.021,  0.021,  0.021,  0.021,  0.021,  0.021,  0.021])
于 2012-06-21T19:50:03.657 に答える
4
with open('data2.txt') as f:
    f=[x.strip() for x in f if x.strip()]
    data=[tuple(map(float,x.split())) for x in f[2:]]
    charges=[x[1] for x in data]
    times=[x[0] for x in data]
    print('times',times)
    print('charges',charges)

現在の料金と時間は次のとおりです。

times [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
charges [0.021, 0.021, 0.021, 0.021, 0.021, 0.021, 0.021]
于 2012-06-21T19:43:18.967 に答える