Python读取特定的数据表

时间:2013-07-29 23:21:52

标签: python python-3.x

我正在做的是这样的事情:

细胞21
 乘数:1.02400E + 00 3 103
         时间

5.0000E+02   7.08884E-06 0.0008
1.0600E+03   3.77034E-06 0.0027
1.6900E+03   3.37108E-06 0.0039
2.4000E+03   3.31327E-06 0.0048
3.1900E+03   3.36657E-06 0.0056
4.0800E+03   3.51381E-06 0.0062
5.0800E+03   3.66066E-06 0.0067
6.1900E+03   3.74282E-06 0.0072  --- i need this data from here to
7.4300E+03   3.80566E-06 0.0077
8.8400E+03   3.96633E-06 0.0080
1.0400E+04   3.95870E-06 0.0085
1.2200E+04   4.25023E-06 0.0087
1.4100E+04   3.85369E-06 0.0096
1.6400E+04   4.04088E-06 0.0098
1.8900E+04   3.34150E-06 0.0112
2.1700E+04   2.66266E-06 0.0128  
2.4900E+04   1.82856E-06 0.0160
2.8500E+04   1.03725E-06 0.0211
3.2500E+04   4.73739E-07 0.0314
3.7000E+04   2.27247E-07 0.0450
4.2100E+04   1.19012E-07 0.0670
4.7800E+04   6.49180E-08 0.0876
5.4200E+04   2.54971E-08 0.1302
6.1400E+04   1.69030E-08 0.1829
6.9500E+04   7.24287E-09 0.2489
7.8700E+04   7.15292E-09 0.2794
8.8900E+04   1.81884E-09 0.5471
1.0100E+05   8.62254E-10 0.6012
1.1300E+05   0.00000E+00 0.0000
1.2800E+05   9.05231E-10 0.7085
1.4400E+05   4.06689E-10 1.0000
1.6300E+05   9.77137E-11 1.0000
1.8300E+05   0.00000E+00 0.0000
2.0700E+05   0.00000E+00 0.0000
2.3300E+05   0.00000E+00 0.0000
2.6300E+05   0.00000E+00 0.0000
2.9600E+05   0.00000E+00 0.0000 ------here
3.3300E+05   0.00000E+00 0.0000
3.7600E+05   0.00000E+00 0.0000
4.2300E+05   0.00000E+00 0.0000
4.7600E+05   0.00000E+00 0.0000
5.3600E+05   0.00000E+00 0.0000
6.0400E+05   0.00000E+00 0.0000
6.8000E+05   0.00000E+00 0.0000
7.6500E+05   0.00000E+00 0.0000
8.6100E+05   0.00000E+00 0.0000
9.6900E+05   0.00000E+00 0.0000
1.0900E+06   0.00000E+00 0.0000
1.2200E+06   0.00000E+00 0.0000
1.3800E+06   0.00000E+00 0.0000
1.5500E+06   0.00000E+00 0.0000
1.7500E+06   0.00000E+00 0.0000
1.9700E+06   0.00000E+00 0.0000
2.2100E+06   0.00000E+00 0.0000
2.5000E+06   0.00000E+00 0.0000
2.8000E+06   0.00000E+00 0.0000
3.1500E+06   0.00000E+00 0.0000
3.5400E+06   0.00000E+00 0.0000
3.9900E+06   0.00000E+00 0.0000
4.4900E+06   0.00000E+00 0.0000
5.0500E+06   0.00000E+00 0.0000
5.6800E+06   0.00000E+00 0.0000
6.3900E+06   0.00000E+00 0.0000
1.0000E+07   0.00000E+00 0.0000
  total      6.55186E-05 0.0019

我还需要添加数字,如3.74282E-06 + 3.80566E-06 + 3.96633E-06 + .... 0.00000E + 00 = 3.74E-05

请帮我详细说明如何做到:((

2 个答案:

答案 0 :(得分:0)

这会给你你想要的东西。

import numpy as np
import csv

reader = csv.reader(open('yourFile.csv','rb'))
nparray = np.array(list(reader))

selected = nparray[8:37]
sum = np.sum(selected[:,1])

print selected
print sum

虽然如果这真的是你想要的,一个简单的谷歌搜索会让你走得更远。 NumPy也是可选的。循环中的计数器或者csv的line_num也可以这样做。

答案 1 :(得分:0)

使用NumPy或等效的替代方法是手动完成。由于这是一项如此简单的任务,因此这样做可能具有教育意义。假设它在普通文本文件中,您可以使用以下内容:

dataList = []
with open("data.dat") as f:
    dataList = [tuple(line.split()) for line in f]

当然,您需要逻辑来确定要包含的记录。请注意,这将是字符串元组的列表,而不是真实数字的元组。要像您提到的那样将数字添加到一起,请考虑使用float,如下所示:

num = sum([float(i[1]) for i in dataList])

上面的代码将汇总表中第二列的所有元素。