将Numpy数组追加/连接到Numpy数组

时间:2016-10-15 06:23:59

标签: python numpy

我有两个np数组,一个是1维,另一个是0到8维。我正在尝试将多维数组附加到另​​一个数组上,就像使用列表一样。我已经尝试np.append(1dim, multidim)np.concatenate([1dim, multidim]),但都没有效果。

[-33.752, 150.902, 38.022, 203.0, 1.0]

[[ -33.75   150.9     39.805    0.       1.   ]
 [ -33.75   150.902   44.697    1.       1.   ]
 [ -33.75   150.905   49.054    2.       1.   ]
 [ -33.752  150.905   39.062  204.       1.   ]
 [ -33.755  150.905   40.698  406.       1.   ]
 [ -33.755  150.902   37.512  405.       1.   ]
 [ -33.755  150.9     36.249  404.       1.   ]
 [ -33.752  150.9     36.627  202.       1.   ]]

成为:

[-33.752, 150.902, 38.022, 203.0, 1.0],
 [ -33.75   150.9     39.805    0.       1.   ]
 [ -33.75   150.902   44.697    1.       1.   ]
 [ -33.75   150.905   49.054    2.       1.   ]
 [ -33.752  150.905   39.062  204.       1.   ]
 [ -33.755  150.905   40.698  406.       1.   ]
 [ -33.755  150.902   37.512  405.       1.   ]
 [ -33.755  150.9     36.249  404.       1.   ]
 [ -33.752  150.9     36.627  202.       1.   ]]

我希望能够使用1dim[1]

引用multidim数组

3 个答案:

答案 0 :(得分:3)

您的示例输出显示(1x8)数组与(Nx8)数组连接以形成(N + 1 x 8)数组。

如果你想创建一个“东西”,其中第一个元素是1-D数组,第二个元素是N-D数组,那么列表或元组就是你的赌注。 Numpy并没有很好的设施。

如果你想创建一个两个2D组合的数组,根据你的例子,np.vstack([flat_array, big_array])会这样做。

顺便说一句,在描述某些维度的数量时,array.ndim与len(array.shape)相同。请注意,在numpy的上下文中,具有5行和8列的数组是二维的。

答案 1 :(得分:0)

您必须使用numpy.appendnumpy.concatenate。但要注意阵列的形状。对于您的情况,您必须定义正确的形状

ans = np.append([[small array]],[big array],axis = 0)(注意extra []用于正确的形状,请阅读numpy.append教程)

答案 2 :(得分:0)

或者您可以手动执行任何形状

blank= [ ] #create a blank list
a=1D array
blank.append(a)
b=nD array
for i in range(len(b)):
     blank.append(b[i])
answer=np.array(blank)