从numpy数组访问块
我有一个用制表符分隔的表格,存放在一个文本文件里。
Year TMAX1 TMAX2 TMAX3 TMAX4 TMAX5 TMAX6 TMAX7 TMAX8 TMAX9 TMAX10 TMAX11 TMAX12 TMIN1 TMIN2 TMIN3 TMIN4 TMIN5 TMIN6 TMIN7 TMIN8 TMIN9 TMIN10 TMIN11 TMIN12
1964 29.27419355 28.01724138 26.83870968 21.43333333 17.46774194 14.66666667 13.40322581 15.03225806 16.93333333 18.62903226 23.9 23.40322581 12.0483871
我想把每一块数据读入一个numpy数组。目前我有这个。
import numpy as np
metData = open('metData.txt', "r")
climateVarNames = ['YEAR', 'TMAX', 'TMIN', 'RAIN', 'EVAP', 'RADTN', 'RAINDAYS', 'FROSTDAYS']
a = np.loadtxt(metData, skiprows=1)
for climateVar in climateVarNames:
if "TMAX" == climateVar:
TMAX = 1,2,3,4,5,6,7,8,9,10,11,12
mTx = np.array(a[:,(TMAX)])
if "TMIN" == climateVar:
TMIN = 13,14,15,16,17,18,19,20,21,22,23,24
mTn = np.array(a[:,(TMIN)])
我该如何把列的值自动分配给 TMAX
,还有其他的值呢?或者有没有更好的方法?
1 个回答
1
import numpy as np
a = np.loadtxt('metData.txt', skiprows=1, delimiter='\t')
mTx = a[:, 1:13]
mTn = a[:, 13:25]
注意,如果 metData.txt
文件里有多于一行的内容,那么 a
就会变成一个二维数组。可是,如果这个数据文件只有一行,那么 a
就会是一个一维数组。在这种情况下,a[:,(1,2,3,4,5,6,7,8,9,10,11,12)]
会出现索引错误(IndexError)。所以,上面的代码是基于数据文件里有多于一行的内容来写的。