【问题标题】:How to concatenate several (more than 2) 2D arrays in Python?如何在 Python 中连接多个(超过 2 个)二维数组?
【发布时间】:2025-12-10 20:30:02
【问题描述】:

我有以下两组数组,我只想按以下顺序连接它们:

在第一种情况下,我只想取 a 的前两个元素和 b 的所有元素。

输入

a = [[1,1],[1,1],[1,1]]
b = [[2,2],[2,2]]

预期输出

c = [[1,1],[1,1],[2,2],[2,2]]

还有第二种情况

输入

a = [1,1]
b = [2,2]

预期输出

c = [1,1,2,2]

我也接受 numpy 解决方案。

【问题讨论】:

    标签: python arrays list concatenation


    【解决方案1】:

    您可以只使用+ 运算符

    >>> a = [[1,1],[1,1]]
    >>> b = [[2,2],[2,2]]
    >>> a + b
    [[1, 1], [1, 1], [2, 2], [2, 2]]
    
    >>> a = [1,1]
    >>> b = [2,2]
    >>> a + b
    [1, 1, 2, 2]
    

    既然你也提到了numpy,你可以使用numpy.concatenate

    >>> np.concatenate([a, b])
    

    【讨论】:

    • 是的,我尝试使用几 (6) 个数组来执行此操作,但由于某种原因,它添加了它们而不是连接。在我的实际情况下,操作如下所示:c = a[:100] + b[:100] + d[:100]。您认为这种行为可能来自哪里?
    • abc有哪些类型?如果这些是numpy.array,那么是的,除非您使用concatenate,否则它们将按元素添加。如果它们是普通的 python 列表,它们将连接起来。
    • 哦,我明白了。是的,他们都是麻木的。那么连接是唯一的方法吗?如果有多个,我将不可避免地不得不遍历它们?在这种情况下,我怎样才能让连接成为一个只有 1 行而不是 1 列的数组,因为它是默认的?