【发布时间】:2021-08-03 14:13:49
【问题描述】:
嗨,我有 3 个数组,我想逐个元素地合并它们。例如
a=array([3.1, 3.3])
b=array([4.1, 4.3])
c=array([6.1, 1.3])
我如何合并添加它们以获得此
array([3.1, 4.1,6.1],[3.3,4.3,1.3])
【问题讨论】:
-
你试过什么?
np.array((a,b,c))?
标签: numpy
嗨,我有 3 个数组,我想逐个元素地合并它们。例如
a=array([3.1, 3.3])
b=array([4.1, 4.3])
c=array([6.1, 1.3])
我如何合并添加它们以获得此
array([3.1, 4.1,6.1],[3.3,4.3,1.3])
【问题讨论】:
np.array((a,b,c))?
标签: numpy
您可以先将数组堆叠在一起
a=np.array([3.1, 3.3])
b=np.array([4.1, 4.3])
c=np.array([6.1, 1.3])
stacked = np.vstack([a, b, c])
然后转置结果
result = stacked.T
给了
>>> result
array([[3.1, 4.1, 6.1],
[3.3, 4.3, 1.3]])
【讨论】:
In [374]: a=np.array([3.1, 3.3])
...: b=np.array([4.1, 4.3])
...: c=np.array([6.1, 1.3])
从其他人创建新数组的常用方法是使用np.array:
In [375]: np.array((a,b,c))
Out[375]:
array([[3.1, 3.3],
[4.1, 4.3],
[6.1, 1.3]])
这些是数字;只是布局不同,(3,2) 与其transpose 不同。
或使用concatenate/stack 的变体。例如:
In [380]: np.column_stack((a,b,c))
Out[380]:
array([[3.1, 4.1, 6.1],
[3.3, 4.3, 1.3]])
In [381]: np.stack((a,b,c),axis=1)
Out[381]:
array([[3.1, 4.1, 6.1],
[3.3, 4.3, 1.3]])
甚至打一个电话给transpose(虽然在幕后,这首先会执行 [375] 步骤):
In [382]: np.transpose((a,b,c))
Out[382]:
array([[3.1, 4.1, 6.1],
[3.3, 4.3, 1.3]])
这些函数都有文档记录。
【讨论】: