Numpy压缩函数

kuarbcqp  于 2023-01-26  发布在  其他
关注(0)|答案(3)|浏览(101)

如果我有两个numpy一维数组

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

如何将它们压缩到Numpy二维坐标数组中?如果这样做:

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

结果是list类型,而不是Numpy数组.所以我必须这么做

x1=np.asarray(x1)

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

gmol1639

gmol16391#

就用

x1, x2, x3 = np.vstack([x,y]).T
n1bvdmb6

n1bvdmb62#

使用numpy.dstack()按深度堆叠输入数组,并使用numpy.squeeze()去掉单元素维度,然后将结果赋给坐标变量x1x2x3,如下所示:

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])
sgtfey8w

sgtfey8w3#

使用numpy.c_

x1, x2, x3 = np.c_[x, y]

输出:

# x1
array([ 1, 11])

# x2
array([ 2, 22])

# x3
array([ 3, 33])

相关问题