我有一个相同大小的数组列表。列表' z'成立:
>>> z[0]
Out[24]: array([ -27.56272878, 952.8099842 , -3378.58996244, 4303.9692863 ])
>>> z[1]
Out[25]: array([ -28, 952 , -36244, 2863 ])
>>> z[0].shape
Out[26]: (4,)
我想连接列表中的数组以获得一个新的数组,如下所示:
-27.56272878 952.8099842 -3378.58996244 4303.9692863
-28 952 -36244 2863
即。对于上面的例子,我希望获得一个大小为(2,4)的数组
原始列表' z'它有大约100个数组,但都有相同的大小(4,)
编辑:我试过这个帖子的建议但是没有用: Python concatenating different size arrays stored in a list
答案 0 :(得分:4)
不知道这样做吗?
znew = np.vstack((z[0],z[1]))
答案 1 :(得分:2)
使用.extend
建立新列表:
concatenated = []
for l in z:
concatenated.extend(l)
答案 2 :(得分:1)
如果你有:
z= [np.array([ -27.56272878, 952.8099842 , -3378.58996244, 4303.9692863 ]),
np.array([ -28, 952 , -36244, 2863 ])]
您可以尝试连接它们,然后使用连接的数组数(len(z)
)和每个数组的长度(len(z[0])
重新整形新数组,如您所说它们都具有相同的长度):
In [10]: new = np.concatenate([i for i in z]).reshape((len(z), len(z[0])))
In [11]: new.shape
Out[11]: (2, 4)
In [12]: print(new)
[[ -2.75627288e+01 9.52809984e+02 -3.37858996e+03 4.30396929e+03]
[ -2.80000000e+01 9.52000000e+02 -3.62440000e+04 2.86300000e+03]]
答案 3 :(得分:0)
只需使用extend()即可。基本上用新值扩展初始数组。
arr1 = [ -27.56272878, 952.8099842 , -3378.58996244, 4303.9692863 ]
arr2 = [ -28, 952 , -36244, 2863 ]
arr1.extend(arr2)
print arr1
>> [-27.56272878, 952.8099842, -3378.58996244, 4303.9692863, -28, 952, -36244, 2863]