我有两个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]
答案 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.append或numpy.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)