Python将ndarray对象转换为二维数组

时间:2018-10-24 09:35:48

标签: python arrays numpy

我有两种类型的结果叫做idcs

a)idcs是2D numpy数组

print(idcs[0:3,:])
[[  147.  -696. -1000. ...,  2275.  2718.  2206.]
 [  140.  -599.  -999. ...,  1824.  1982.  2084.]
 [ -528.  -291.   441. ...,  -189.   522.   942.]]

b)idcs是一个numpy数组的一维ndarray对象(此处为不同数据)

print(idcs[0:3]) 
[ array([ -20.95406189,   54.04593811,  136.04593811, ...,   -4.95406189,
        -88.95406189,  -87.95406189])
 array([  24.49842377,   11.49842377,  -17.50157623, ..., -100.50157623,
       -121.50157623, -106.50157623])
 array([ 460.3249115,  411.3249115,  124.3249115, ...,  -79.6750885,
        -72.6750885,   97.3249115])]

我想将b)类型的输出转换为a)类型。这该怎么做? 使用np.vstack无效:

ValueError:除串联轴外,所有输入数组维都必须完全匹配

谢谢亨氏

1 个答案:

答案 0 :(得分:0)

该错误表明第二种情况下的数组长度不同。您不能垂直堆叠具有不同长度的数组。如果您修改数组以使它们的长度相同,则vstack将起作用。