我试图阅读文本文件中在线存储的346条美国河流的排放数据。文件或多或少采用以下格式:
Measurement_number Date Gage_height Discharge_value
1 2017-01-01 10 1000
2 2017-01-20 15 2000
# etc.
我只想读取量具高度和放电值列。 问题是,在大多数文件中,带有元数据的其他列都会添加到“Gage height'之前”。列,所以我不能简单地阅读第3和第4列,因为它们的索引不同。
我试图找到一种方法来说明'读取名称为' Gage_height'和' Discharge_value'',但我还没有成功。
我希望任何人都可以提供帮助。我目前正在尝试使用numpy.genfromtxt加载文本文件,因此找到包含该软件包的解决方案会很棒,但其他解决方案也非常受欢迎。
这是我目前的代码
data_url=urllib2.urlopen(#the url of this specific site)
data=np.genfromtxt(data_url,skip_header=1,comments='#',usecols=2,3])
答案 0 :(得分:0)
您可以使用names=True
选项genfromtxt
,然后使用列名称选择要使用usecols
读取的列。
例如,要从您的数据文件中阅读'Gage_height'
和'Discharge_value'
:
data = np.genfromtxt(filename, names=True, usecols=['Gage_height', 'Discharge_value'])
请注意,如果您使用skip_header=1
,则无需设置names=True
。
然后,您可以使用其名称访问列:
gage_height = data['Gage_height'] # == array([ 10., 15.])
discharge_value = data['Discharge_value'] # == array([ 1000., 2000.])
有关详细信息,请参阅the docs here。