连接两个2d数组的Python
关于连接/追加数组有很多内容,但我在build中没有找到解决问题的方法:输入:连接两个2d数组的Python,python,arrays,numpy,multidimensional-array,Python,Arrays,Numpy,Multidimensional Array,关于连接/追加数组有很多内容,但我在build中没有找到解决问题的方法:输入: 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?在普通python
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?在普通python中,这可以通过
映射和邮政编码轻松实现:
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
按元素组合这两个列表。需要映射
将每个压缩的元素转换为列表
和numpy一起。。。。您可以使用np.hstack
,但它们没有相同的维度,因此,据我所知,使用numpy无法有效地实现这一点。在普通python中,使用map
和zip
很容易做到这一点:
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
按元素组合这两个列表。需要映射
将每个压缩的元素转换为列表
和numpy一起。。。。您可以使用np.hstack
,但它们没有相同的维度,因此,据我所知,使用numpy无法有效地实现这一点。Python的一大优势是它支持
这基本上是一个产生数组的单线循环
对于您的问题-假设您保护A和B始终具有相同的长度,您可以轻松地编写一行这样的代码:
[[A[i], B[i]] for i in range(len(A))]
Python的一大优点是它支持
这基本上是一个产生数组的单线循环
对于您的问题-假设您保护A和B始终具有相同的长度,您可以轻松地编写一行这样的代码:
[[A[i], B[i]] for i in range(len(A))]
这将产生您想要的输出。以numpy为单位?还是像Python列出的那样?在numpy中?还是作为Python列表?或者,作为一个更简单的选择,<代码> [x,y]为zip(a,b)] /<代码>。是的,这更简单,但是在开始列表理解时可能更困难。如果OP在谈论NUMPY,人们只能希望和祈祷他们把基础知识降低了。或者,作为一个更简单的选择,<代码> [[x,y]为x,y在zip(a,b)] < /代码>。这更简单,但从列表理解开始时可能更困难。如果OP在谈论NUMPY,人们只能希望和祈祷他们把基础知识降低了。