可用输出来自纽比。在哪里()功能

2024-09-24 00:31:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python脚本中调用一个函数,我想返回一组索引。基本上我想去掉(array([index1]),array([index2]))返回纽比。在哪里()所以我只有([index1],[index2])。在

我尝试过转换为字符串并使用arr.strip('array'),但没有成功。在

我想我应该把一些事情弄清楚。我希望函数返回一个值,然后返回两个索引,如[val, index1, index2]

实际上,返回看起来更像这样:[val, (array([index1]), array([index2]))]

基本上,我搜索两个数组,Lat和Lon,看看它们在哪里有相同的索引,每个数组都满足自己的要求。然后我计算这些点和一个给定点之间的距离,并将其添加到一个列表中。在

    for i in range(len(smalllat)):
            temp = [smalllat[i], smalllon[i]]
            loc = N.where((lat==smalllat[i]) & (lon==smalllon[i]))
            smallset.append([dist_calc.distance(temp, [lat1, lon1]), loc])

然后按第一个值(距离)对列表进行排序,并返回前四个数组。在

^{pr2}$

这给了我一些形式上的东西:

[[3.3883810544766138, (array([72]), array([232]))], 
 [25.248157869075957, (array([72]), array([231]))],
 [34.31977394077627, (array([71]), array([232]))], 
 [42.651294795468786, (array([71]), array([233]))]]

我想将它们存储在一个(x, 4, 3)numpy数组中,其中x是我运行函数的次数。在

预期输出如下:

[[[3.3883810544766138, 72, 232], 
 [25.248157869075957, 72, 231],
 [34.31977394077627, 71, 232], 
 [42.651294795468786, 71, 233]],
 ...,
 [[3.3883810544766138, 72, 232], 
 [25.248157869075957, 72, 231],
 [34.31977394077627, 71, 232], 
 [42.651294795468786, 71, 233]]]

请随意提问。在

有什么建议吗?在


更新

我通过将函数改为:

    for i in range(len(smalllat)):
            temp = [smalllat[i], smalllon[i]]
            loc = N.where((lat==smalllat[i]) & (lon==smalllon[i]))
            loc = [map(int, x) for x in loc]
            loc1 = loc[0]
            loc2 = loc[1]
            smallset.append([dist_calc.distance(temp, [lat1, lon1]), loc1[0], loc2[0]])

我相信还有更好的方法。在


Tags: 函数in距离列表forrangeval数组