Python error: Valueerror-need-more-than-1-value-to-unpack
Python error: Valueerror-need-more-than-1-value-to-unpack
在python时我运行这段代码:
lat, lon = f.variables['latitude'], f.variables['longitude']
latvals = lat[:]; lonvals = lon[:]
def getclosest_ij(lats,lons,latpt,lonpt):
dist_sq = (lats-latpt)**2 + (lons-lonpt)**2
minindex_flattened = dist_sq.argmin()
return np.unravel_index(minindex_flattened, lats.shape)
iy_min, ix_min = getclosest_ij(latvals, lonvals, 46.1514, 20.0846)
出现以下错误:
ValueError Traceback (most recent call last)
ipython-input-104-3ba92bea5d48 in module()
11 return np.unravel_index(minindex_flattened, lats.shape)
12 iy_min, ix_min = getclosest_ij(latvals, lonvals, 46.1514, 20.0846)
ValueError:解压需要超过 1 个值
这是什么意思?我该如何解决?
我会读取一个 NetCDF 文件,它由总列水数据组成,维度为:时间 (124)、纬度 (15) 和经度 (15)。我会为特定点(lat,lon)和时间分配 tcw 的数量。我尝试使用上面的代码来解决我的任务的第一部分,即评估特定坐标的 tcw,但没有成功。
在此先感谢您的帮助。
在python中你可以写
var1, var2 = (1, 2) # = iterable with 2 items
这将在 var1
中存储 1,在 var2
中存储 2。
此功能称为解包。
所以你的代码抛出的错误意味着,函数 getclosest_ij
返回 one 值而不是你需要将它们解压缩到 iy_min
中的 2 个值] 和 ix_min
在python时我运行这段代码:
lat, lon = f.variables['latitude'], f.variables['longitude']
latvals = lat[:]; lonvals = lon[:]
def getclosest_ij(lats,lons,latpt,lonpt):
dist_sq = (lats-latpt)**2 + (lons-lonpt)**2
minindex_flattened = dist_sq.argmin()
return np.unravel_index(minindex_flattened, lats.shape)
iy_min, ix_min = getclosest_ij(latvals, lonvals, 46.1514, 20.0846)
出现以下错误:
ValueError Traceback (most recent call last)
ipython-input-104-3ba92bea5d48 in module()
11 return np.unravel_index(minindex_flattened, lats.shape) 12 iy_min, ix_min = getclosest_ij(latvals, lonvals, 46.1514, 20.0846)
ValueError:解压需要超过 1 个值
这是什么意思?我该如何解决? 我会读取一个 NetCDF 文件,它由总列水数据组成,维度为:时间 (124)、纬度 (15) 和经度 (15)。我会为特定点(lat,lon)和时间分配 tcw 的数量。我尝试使用上面的代码来解决我的任务的第一部分,即评估特定坐标的 tcw,但没有成功。
在此先感谢您的帮助。
在python中你可以写
var1, var2 = (1, 2) # = iterable with 2 items
这将在 var1
中存储 1,在 var2
中存储 2。
此功能称为解包。
所以你的代码抛出的错误意味着,函数 getclosest_ij
返回 one 值而不是你需要将它们解压缩到 iy_min
中的 2 个值] 和 ix_min