Numpy连接多个轴

时间:2015-11-11 18:51:50

标签: python arrays numpy

我不知道为什么我不能使用numpy.concatenate函数将数组的多个维连接在一起。例如:

    array_2d.shape = [1200,1200]
    array2_2d.shape = [1200,1200]
    final_array1 = numpy.concatenate((array_2d,array2_2d),axes=0) # shape = (2400,1200)
    final_array2 = numpy.concatenate((array_2d,array2_2d),axes=1) # shape = (1200,2400)

有没有办法可以让2个数组连接两个轴以产生(2400,2400)的形状?或者我只是想通过数组连接错误地考虑这种方法?一些帮助将非常感谢!!!

2 个答案:

答案 0 :(得分:0)

让我们考虑一下你要完成的任务,让我们将array1 A和array2 B以及一些未知数组称为X.如你所说,以下是2400 x 1200:

 | A |
 | B |

但这将是2400乘2400阵列:

 | A | X |
 | X | B |

所以这样:

 | A | X |
 | B | X |

这......:

 | A | A |
 | B | B |

真正的问题是你想要连接每个数组的次数,在哪个维度或者你想要零填充:

 | A | 0 |
 | 0 | B |

通过使用numpy创建一个零数组并在将结果连接在一起之前在A和B上以适当的方向连接,可以实现这一目的。

答案 1 :(得分:0)

您应该使用numpy.tile()。阅读this link了解更多信息。

示例:

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

将通过重复两个轴从2x2数组创建4x4数组。