在一个数组中连接多个NumPy数组?

15
假设我有许多Numpy数组:

Assume I have many numpy array:


a = ([1,2,3,4,5])
b = ([2,3,4,5,6])
c = ([3,4,5,6,7])

我希望您能够生成一个新的二维数组:

d = ([[1,2,3,4,5],[2,3,4,5,6],[3,4,5,6,7]])

我该写些什么代码呢?我尝试了使用:

d = np.concatenate((a,b),axis=0)
d = np.concatenate((d,c),axis=0)

它返回:

d = ([1,2,3,4,5,2,3,4,5,6,3,4,5,6,7])

1
尝试使用numpy.vstacknp.vstack((a,b,c)) - Divakar
3
np.array([a,b,c])np.stack([a,b,c]) 都会在一个新的维度上进行连接。 - hpaulj
1个回答

26

如评论中所提到的,您可以直接使用np.array函数:

>>> import numpy as np
>>> a = ([1,2,3,4,5])
>>> b = ([2,3,4,5,6])
>>> c = ([3,4,5,6,7])

>>> np.array([a, b, c])
array([[1, 2, 3, 4, 5],
       [2, 3, 4, 5, 6],
       [3, 4, 5, 6, 7]])

如果您想要基于一个“尚未存在”的维度进行堆叠,您可以使用np.stack

>>> np.stack([a, b, c], axis=0)
array([[1, 2, 3, 4, 5],
       [2, 3, 4, 5, 6],
       [3, 4, 5, 6, 7]])

>>> np.stack([a, b, c], axis=1)  # not what you want, this is only to show what is possible
array([[1, 2, 3],
       [2, 3, 4],
       [3, 4, 5],
       [4, 5, 6],
       [5, 6, 7]])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接