追加/合并二维数组
Posted
技术标签:
【中文标题】追加/合并二维数组【英文标题】:Appending/Merging 2D Arrays 【发布时间】:2012-07-05 14:52:13 【问题描述】:是否可以使用 numpy 或其他方法在 Python 中合并二维数组?我有大约 200 个二维数组,它们都具有相同的维度 (1024,256),并希望将它们添加到彼此的下端。添加后的最终形状,例如其中 3 个应该是 (1024,768)。
【问题讨论】:
【参考方案1】:三个数组 (1024,256) 必须附加到 right 端,而不是 lower 端。您将它们水平堆叠在一起(1024 行,256 列)。
使用numpy.hstack
(h 为水平):
lst
是(numpy 或 python)数组(1024,256)
的列表:
numpy.hstack(lst)
返回单个 numpy 数组 (1024,256*len(lst))
【讨论】:
非常感谢!一直误解横向的意思!【参考方案2】:确实很简单,只要所有数组的大小相同。
>>> a = [[0,1,2],[3,4,5]]
>>> b = [[6,7,8],[9,10,11]]
>>> c = [a[i]+b[i] for i in xrange(len(a))]
>>> c
[[0, 1, 2, 6, 7, 8], [3, 4, 5, 9, 10, 11]]
或更好
sum2darray = lambda a, b: [a[i]+b[i] for i in xrange(len(a))]
c = sum2darray(a,b)
【讨论】:
OP:我有大约 200 个二维数组以上是关于追加/合并二维数组的主要内容,如果未能解决你的问题,请参考以下文章