Python连接两个2d数组

2024-04-27 03:55:17 发布

您现在位置:Python中文网/ 问答频道 /正文

有很多关于连接/附加数组的内容,但我在build中没有找到解决问题的方法:Input:

A = [[0,0],
     [0,1],
     [1,0],
     [1,1]]
B = [[0],
     [1],
     [1],
     [0]]

输出:

C = [
     [[0,0],[0]],
     [[0,1],[1]],
     [[1,0],[1]],
     [[1,1],[0]]
    ]

我不知道如何有效地解决这个问题(inbuild?)


Tags: 方法build内容input数组解决问题inbuild
2条回答

在vanilla python中,这很容易通过mapzip实现:

In [127]: C = list(map(list, zip(A, B)))

In [128]: C
Out[128]: [[[0, 0], [0]], 
           [[0, 1], [1]], 
           [[1, 0], [1]], 
           [[1, 1], [0]]]

zip按元素组合这两个列表。需要map将每个压缩的元素转换为列表

和努比一起。。。。你本可以使用np.hstack,但是它们的维数不同,所以,据我所知,numpy无法有效地实现这一点

Python的一大优点是它支持list comprehensions

这基本上是一个产生数组的单线循环

对于您的问题—假设您保护A和B始终具有相同的长度,您可以轻松地编写一行这样的代码:

[[A[i], B[i]] for i in range(len(A))]

产生你想要的输出

相关问题 更多 >