【问题标题】:Create an (n,1) array from int values in a for loop在 for 循环中从 int 值创建一个 (n,1) 数组
【发布时间】:2021-11-10 20:44:03
【问题描述】:

我只是想从我的 for 循环中的 int 值 (dist) 创建一个 (n,1) 数组。 现在,我只有一系列 int 值,因为我在每次迭代中都打印“dist”值。 如何将每个 dist 合并到一个数组中(在这种情况下只有一个 n 向量),以便 array[i][0] 是 for 循环第 i 次迭代的 dist 值?

我知道这一定很简单,我才刚刚开始使用 NumPy。我试过插入,追加,似乎不起作用。我一开始初始化的distmatrix没用过……

这里是现在的代码:

distmat=np.zeros((len(CoordNodesRad[:,0]),1),int)
lat = CoordNodesRad[:,0]
lng = CoordNodesRad[:,1]
for i in range(len(CoordNodesRad[:,0])):
        dist = distanceGPS(depot[0], depot[1], lat[i], lng[i])
        #print(int(dist))
        #distmat=np.append(distmat,dist,axis=0)
        print(dist)
        distmat=np.insert(dist,i,dist)
print(distmat)

感谢您的帮助

【问题讨论】:

  • 请提供一个可重现的例子。我们不知道CoordNodesRad 是什么或者distanceGPS() 函数是做什么的,它的输入输出是什么样的。
  • 将值附加到列表更容易、更快捷。
  • CoordNodesRad 是一个 n 行 2 列的数组,经纬度为 n 个点。 distanceGPS() 计算从一个站点(具有已知 GPS 坐标)到所有其他 n 个节点的距离。它们不相关(我认为)因为它们有效,我在打印的“dist”值中有实际结果(即从仓库到 n 个节点的距离),但我希望它们存储在一个数组中(在我的情况下“ distmat")。

标签: python arrays numpy for-loop integer


【解决方案1】:

最终我使用了一个简单的列表,并将我的“dist”值附加到它上面。 如果有人比通过列表更快,那么创建数组...... 这是我的新代码(注释行无关紧要)

disttodepot=[]
lat = CoordNodesRad[:,0]
lng = CoordNodesRad[:,1]
for i in range(len(CoordNodesRad[:,0])):
#    for j in CoordNodesRad:
#   dist = np.append(dist, [[i, j]], axis=0)
        dist = distanceGPS(depot[0], depot[1], lat[i], lng[i])
        #print(int(dist))
        #distmat=np.append(distmat,dist,axis=0)
        #print(dist)
        disttodepot.append(int(dist))
print(disttodepot)

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2019-08-28
  • 2012-09-21
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 1970-01-01
  • 2021-07-20
  • 2020-05-16
  • 2012-09-11
相关资源
最近更新 更多