【问题标题】:Extracting coordinates from two numpy arrays从两个numpy数组中提取坐标
【发布时间】:2017-06-02 12:39:37
【问题描述】:

假设你有两个 numpy 数组一个,叫它 A = [x1,x2,x3,x4,x5] 包含所有 x 坐标,然后我有另一个数组,叫它 B = [y1,y2,y3,y4,y5].. 一个人如何“提取”一组坐标,例如 (x1, y1) 这样我就可以用它做点什么了?我可以使用 forloop 或类似的东西吗?我似乎找不到任何好的例子,所以如果你能指导我或给我看一些,我将不胜感激。

【问题讨论】:

  • 获得一个元组 p 包含数组的前两个元素 (x1,y1),您可以使用例如 p=(A[0],B[0])
  • @user2314737 好答案!你为什么把它作为评论发布?
  • @ashbygeek 因为现在是星期五 :)
  • @user2314737 哈哈,好的。
  • 这能回答你的问题吗? concatenate multiple numpy arrays in one array?

标签: python arrays python-3.x numpy


【解决方案1】:

不确定这是否是您要查找的内容。但是你可以使用numpy.concatenate。您只需在 [:,None] 之前添加一个 fake 维度:

import numpy as np
a = np.array([1,2,3,4,5])
b = np.array([6,7,8,9,10])

arr_2d = np.concatenate([a[:,None],b[:,None]], axis=1)
print arr_2d
# [[ 1  6] [ 2  7] [ 3  8] [ 4  9] [ 5 10]]

一旦您生成了一个二维数组,您就可以使用arr_2d[i] 来获取第 i 组坐标。

【讨论】:

    【解决方案2】:

    正如@user2314737 在评论中所说,您可以通过简单地从每个数组中抓取相同的元素来手动完成,如下所示:

    a = np.array([1,2,3])
    b = np.array([4,5,6])
    
    index = 2 #completely arbitrary index choice
    
    #as individual values
    pointA = a[index]
    pointB = b[index]
    
    #or in tuple form
    point = (a[index], b[index])
    

    如果您需要将它们全部转换为坐标形式,那么@Nuageux 的答案可能会更好

    【讨论】:

      【解决方案3】:
      import numpy as np
      
      a = np.array([1, 2, 3, 4, 5])
      b = np.array([6, 7, 8, 9, 10])
      
      print(np.hstack([a[:, np.newaxis], b[:, np.newaxis]]))
      
      
      [[ 1  6]
       [ 2  7]
       [ 3  8]
       [ 4  9]
       [ 5 10]]
      

      【讨论】:

        【解决方案4】:

        假设您有x = np.array([ 0.48, 0.51, -0.43, 2.46, -0.91])y = np.array([ 0.97, -1.07, 0.62, -0.92, -1.25])

        然后就可以使用zip功能了

        zip(x,y)
        

        这将创建一个生成器。把这个生成器变成一个列表,把结果变成一个numpy数组

        np.array(list(zip(x,y)))
        

        结果将如下所示

        array([[ 0.48,  0.97],
               [ 0.51, -1.07],
               [-0.43,  0.62],
               [ 2.46, -0.92],
               [-0.91, -1.25]])
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-12-02
          • 1970-01-01
          • 1970-01-01
          • 2021-12-19
          • 2019-02-19
          • 2020-09-16
          • 1970-01-01
          • 2015-10-26
          相关资源
          最近更新 更多