我有一个CSV包含气象数据,如最高和最低温度,降水量,经度和纬度的气象站等。每类数据存储在一个单一的列。
我想找出最高和最低温度的位置。找到最大值或最小值很容易: numpy.min(我的温度栏)
如何找到最小值或最大值所在的位置,以便找到经纬度?
以下是我的尝试:
def coldest_location(data):
coldest_temp= numpy.min(mean_temp)
for i in mean_temp:
if mean_temp[i] == -24.6:
print i
Error: List indices must be int
我把CSV的每一列都保存到变量中,所以它们都是单独的列表。
lat = [row[0] for row in weather_data] # latitude
long = [row[1] for row in weather_data] # longitude
mean_temp = [row[2] for row in weather_data] # mean temperature
我已经按照建议列表解决了这个问题。索引(x)
mean_temp.index(coldest_temp)
coldest_location=[long[5],lat[5]]
不确定在一个问题中问第二个问题是否合适,但如果有两个地点的最低温度相同怎么办?我怎么能同时找到它们和它们的指数呢?
正如Aaron所说,您可以使用
.index(value)
,但是因为如果value
不存在,则会引发异常,所以您应该处理该情况,即使您确信它永远不会发生。有两个选项是首先检查它的存在,例如:或者捕获异常,如:
正确的错误处理永远不会出错。
你想过使用Python list的^{} 方法吗?它返回传入的
value
的第一个实例所在的列表中的索引。在没有实际看到数据的情况下,很难说明如何在特定情况下找到max和min的位置,但通常,可以按如下所示搜索位置。下面是一个简单的例子:
或者,也可以执行以下操作:
相关问题 更多 >
编程相关推荐