【问题标题】:Concatenate two numpy arrays together index-wise将两个 numpy 数组按索引连接在一起
【发布时间】:2021-02-26 00:40:27
【问题描述】:

我有两个 2D numpy 数组:

a = np.array([[0,1,2,3,4],
              [0,1,2,3,4],
              [0,1,2,3,4]
              ...
              ])

b = np.array([[0,0,0,0,0],
              [1,1,1,1,1],
              [2,2,2,2,2],
              ...
              ])

我怎样才能获得一个 numpy 数组,其中每个确切的索引将连接在一起?

OUT:
[[0,0], [1,0], [2,0], [3,0], [4,0] [0,1], [1,1], [2,1], [3,1], [4,1] ...]

【问题讨论】:

  • 两个样本数组的形状不同。您希望如何将它们按索引配对?也就是说,你如何处理未对齐的索引?
  • 抱歉,你是对的,我没有正确输入输入 编辑:我已经制作了相同形状的两个样本数组 - 最初的问题保持不变!

标签: python arrays numpy


【解决方案1】:

你想要堆栈

result = np.stack((a,b), axis=2)
array([[[0, 0],
        [1, 0],
        [2, 0],
        [3, 0],
        [4, 0]],

       [[0, 1],
        [1, 1],
        [2, 1],
        [3, 1],
        [4, 1]],

       [[0, 2],
        [1, 2],
        [2, 2],
        [3, 2],
        [4, 2]]])

取自@user15270287,你可以用np.reshape(result, (-1, 2))重塑结果

【讨论】:

  • 要获得您想要的二维数组,您可以在此之后执行np.reshape(result, (-1, 2))
【解决方案2】:

你可以使用np.dstack:

>>> a = np.array([[0,1,2,3,4],
              [0,1,2,3,4],
              [0,1,2,3,4]
              ])

>>> b = np.array([[0,0,0,0,0],
              [1,1,1,1,1],
              [2,2,2,2,2],
              ])

>>> np.dstack((a, b)).reshape(-1, 2)
array([[0, 0],
       [1, 0],
       [2, 0],
       [3, 0],
       [4, 0],
       [0, 1],
       [1, 1],
       [2, 1],
       [3, 1],
       [4, 1],
       [0, 2],
       [1, 2],
       [2, 2],
       [3, 2],
       [4, 2]])

【讨论】:

    【解决方案3】:
    def mapper(x):
        temp = []
        for a,b in zip(x[0],x[1]):
            temp.append([a,b])
        return temp
    
    result = list(map(lambda x:mapper(x),zip(a,b)))
    

    输出:

    [[[0, 0], [1, 0], [2, 0], [3, 0], [4, 0]],
     [[0, 1], [1, 1], [2, 1], [3, 1], [4, 1]],
     [[0, 2], [1, 2], [2, 2], [3, 2], [4, 2]]]
    

    【讨论】:

      猜你喜欢
      • 2021-07-16
      • 2012-03-03
      • 2019-05-26
      • 1970-01-01
      • 2018-10-25
      • 2019-04-03
      • 1970-01-01
      • 2012-04-04
      相关资源
      最近更新 更多