【问题标题】:How to subtract every value of one array from another array to find location of where value of array 1 minus value of array 2 = 0?如何从另一个数组中减去一个数组的每个值以找到数组 1 的值减去数组 2 的值 = 0 的位置?
【发布时间】:2020-06-05 23:42:11
【问题描述】:

我想在给定的纬度和经度值之间找到对以输出温度值。例如,假设这是我可用的数据:

lat1=[0,1,2,3,4,5,6,7,8]
lon2=[0,1,2,3,4,5,6,7,7]
temp=[2,3,4,5,6,7,8,9,10]

这是我必须获得的温度值的纬度和经度值:

lat2=[0,1,2,3,8]

lon2=[0,1,2,3,7]

在这个例子中,我希望我的代码输出每个纬度和经度对的温度值。所以它会为给定的纬度和经度值输出以下温度:

temp=[2,3,4,10]

以下是我的尝试。我的想法是找到从所需纬度和经度值中减去数据纬度和经度值等于 0 的任何地方,这意味着它们是相同的。然后我会得到发生这种情况的位置,并用温度数据进一步打印这个相同的位置。但是,此代码输出以下错误:

TypeError: unsupported operand type(s) for -: 'list' and 'list'

对我当前代码的任何帮助或进一步的建议将不胜感激!太感谢了。

'''
import numpy as np 

def findpairs(lat1,lat2,lon1,lon2,a,b,c,d):
    for i in range (0,a):
        for j in range (0,b):
            for k in range (0,c):
                for l in range (0,d):
                    if ((lat1[0:]-lat2[0:]==0) and (lon1[0:]-lon2[0:]==0)):
                        print (np.where(lat2[j]))



#driver code 
lat1 = [1, 2, 7, 5, 3] 
lon1 = [ 7, 4, 3, 2, 1,0] 
lat2=[1,2,3,7,5,3]
lon2=[7,4,3,2,1,9,0]
a=len(lat1)
b=len(lon1)
c=len(lat2)
d=len(lon2)
findpairs(lat1,lat2,lon1,lon2,a,b,c,d)

'''

【问题讨论】:

    标签: arrays python-3.x data-analysis


    【解决方案1】:

    您可以创建一个将坐标映射到温度的字典,以便您可以使用它将请求的坐标映射到相应的温度:

    def get_temp(lat1, lat2, lon1, lon2, temp):
        return list(map(dict(zip(zip(lat1, lon1), temp)).get, zip(lat2, lon2)))
    

    所以给定:

    lat1 = [0, 1, 2, 3, 4, 5, 6, 7, 8]
    lon1 = [0, 1, 2, 3, 4, 5, 6, 7, 7]
    temp = [2, 3, 4, 5, 6, 7, 8, 9, 10]
    lat2 = [0, 1, 2, 3, 8]
    lon2 = [0, 1, 2, 3, 7]
    

    get_temp(lat1, lat2, lon1, lon2, temp) 会返回:

    [2, 3, 4, 5, 10]
    

    请注意,您的预期输出缺少 5,因为这是 (3, 3) 应该映射到的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-13
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-04
      • 2015-09-08
      • 1970-01-01
      相关资源
      最近更新 更多