我真的是 python 新手。所以也许我的问题真的很基本......对于我的工作,我会在一段时间内检查不同的参数。对于 Python 入门,我想绘制一个简单的列表,其中包含一个月的每日测量温度值。在列表中,我有如下结构的三个拆分:
日 -TAB- 温度 -TAB- Nr
我的代码:
import pylab as pl
import numpy as np
filename = "u_netCDF_write"
file = open(filename)
NoOfValues = 31
counter=0
data = []
for line in file:
if counter <= NoOfValues:
data.append(line.strip('\n').strip('\t').split(' '))
if len(data[-1]) == 4:
data[-1].pop(3)
counter+=1
x = np.linspace(0,30,31)
data = np.transpose(data)
for i in range(len(data[2])):
data[2][i] = float(data[2][i])-273.15
当我尝试绘制每日温度图时,我收到错误消息:
Traceback (most recent call last):
File ".../.../unetCDFplot.py", line 43, in <module>
data[2][i] = float(data[2][i])-273.15
ValueError: invalid literal for float(): 03.07.2014
看起来代码没有转置数据。为什么会这样?有谁能够帮助我? 谢谢!
最佳答案
我的问题解决了!因此,对于遇到同样问题的任何人,这就是我所做的:我使用了
print(repr(data))
(感谢 Stephany Dionysio)检查了我代码中的每一步,发现问题不在于转置函数,而是每行中的空格。在尝试了不同的方法来删除空格后,我发现我无法删除由“data.append”引起的数组中的数组。为了获得我需要的值,我在 append 方法中使用了 pop():
data.append(line.strip('\n').strip('\t').split(' ').pop(7))
现在我的代码可以正常工作了。谢谢你的好建议,他们让我走上了正确的道路! :)
关于Python:ValueError:float() 的无效文字:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33832275/