如果我有两个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函数?
np.asarray
gmol16391#
就用
x1, x2, x3 = np.vstack([x,y]).T
n1bvdmb62#
使用numpy.dstack()按深度堆叠输入数组,并使用numpy.squeeze()去掉单元素维度,然后将结果赋给坐标变量x1、x2和x3,如下所示:
numpy.dstack()
numpy.squeeze()
x1
x2
x3
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])
sgtfey8w3#
使用numpy.c_:
numpy.c_
x1, x2, x3 = np.c_[x, y]
输出:
# x1 array([ 1, 11]) # x2 array([ 2, 22]) # x3 array([ 3, 33])
3条答案
按热度按时间gmol16391#
就用
n1bvdmb62#
使用
numpy.dstack()
按深度堆叠输入数组,并使用numpy.squeeze()
去掉单元素维度,然后将结果赋给坐标变量x1
、x2
和x3
,如下所示:sgtfey8w3#
使用
numpy.c_
:输出: