代码之家  ›  专栏  ›  技术社区  ›  Adam Merckx

如何将坐标值附加到坐标数组中?

  •  3
  • Adam Merckx  · 技术社区  · 6 年前

    我正试图将一个坐标附加到一个坐标数组中。

    但我明白了:

     [array([637, 257]), array([[114, 233], [114, 163]])]
    

    而不是:

    [[637, 257], [114, 233], [114, 163]]
    

    我使用np.append将单个坐标附加到坐标数组中。 我错过了什么?

    import numpy as np 
    coord = [(637, 257)]
    coordinates = np.genfromtxt('Coordinates.csv', dtype =int, delimiter = ",")
    coord.append(coordinates)
    print(coord)
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   willeM_ Van Onsem    6 年前

    通过附加,你可以添加一个 单一的 列表中的元素。但是 coordinates 是一个二维数组(其中每一行都是一个坐标,所以 N×2 数组)。

    你可以用 .extend(..) += 要添加元素(行)的iterable,请执行以下操作:

    import numpy as np 
    coord = [(637, 257)]
    coordinates = np.genfromtxt('Coordinates.csv', dtype =int, delimiter = ",")
    coord += coordinates
    print(coord)

    现在我们得到一个包含三个元素的列表:一个2-list和2 array 如果您还想将坐标转换为列表,我们可以执行 map 发出砰的声响:

    import numpy as np 
    coord = [(637, 257)]
    coordinates = np.genfromtxt('Coordinates.csv', dtype =int, delimiter = ",")
    coord += map(list, coordinates)
    print(coord)
        2
  •  4
  •   blue_note    6 年前

    你需要使用 coord.extend(coordinates) 而不是 append . append只是将整个列表作为单个元素添加,而 extend 将新列表连接到旧列表。