[英]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.