9

例如,如果我有两个 numpy 一维数组

x=np.array([1,2,3])
y=np.array([11,22,33])

如何将这些压缩到 Numpy 2D 坐标数组中?如果我做:

x1,x2,x3=zip(*(x,y))

结果是列表类型,而不是 Numpy 数组。所以我有

x1=np.asarray(x1)

等等..有没有更简单的方法,我不需要调用np.asarray每个坐标?是否有返回 Numpy 数组的 Numpy zip 函数?

4

2 回答 2

16

只需使用

x1, x2, x3 = np.vstack([x,y]).T
于 2014-10-04T13:46:01.863 回答
3

使用深度堆叠输入数组numpy.dstack()并使用摆脱单维numpy.squeeze(),然后将结果分配给坐标变量x1, x2x3如下所示:

In [84]: x1, x2, x3 = np.squeeze(np.dstack((x,y)))

# outputs
In [85]: x1
Out[85]: array([ 1, 11])

In [86]: x2
Out[86]: array([ 2, 22])

In [87]: x3
Out[87]: array([ 3, 33])
于 2018-07-10T12:47:59.587 回答