繁体   English   中英

Python在列表中连接数组

[英]Python concatenate arrays in a list

我有一个相同大小的数组列表。 列表'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连接存储在列表中的不同大小的数组

这不会吗?

znew = np.vstack((z[0],z[1]))

使用.extend构建新列表:

concatenated = []
for l in z:
    concatenated.extend(l)

如果你有 :

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]]

只需使用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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM