我有一个文本文件,其中包含3240行和1列值。每81个值代表2-D框架中的一层。因此,在获得81个值之后,我将达到z = 2,然后达到162,z = 3,依此类推,直到结束(应为40 x水平)。我想在此文本文件中附加值以创建2-D数组,该数组基本上表示特定(x,z)点的值。这是我所拥有的:
df = pd.read_excel("/nfs/home11/grad/2017/et654149/ATM562/HW3/HW3atm562.xlsx")
pivals=df.as_matrix()
pi=[]
l=np.arange(0, 3320, 41)
count=0
i=0
for i in range(len(l)):
pi[0][i].append(pivals[i])
count=count+1
我总是收到错误“列表索引超出范围”,老实说,我不知道我要完成的工作是否与我正在使用的代码正确。最终,我想将此值绘制在等高线图上。
编辑:在下面的注释之前和之后,我都尝试过使用reshape,但是出现错误“索引40超出了尺寸1的轴1的范围”。
答案 0 :(得分:2)
研究了许多错误之后,下面是一个解决方法:
x = 40
y=81
z=[[0 for row in range(0,x)] for col in range(0,y)]
for i in range(x):
for j in range(y):
z.append(pivals[i+j])
a = array(z)
a = a.reshape(81, 41)