合并筛选描述符矩阵,numpy数组

时间:2013-07-16 12:33:47

标签: python arrays numpy

我有像这样的筛选描述符矩阵:

 a=[[ 0.          0.          0.         ...,  0.01570028  0.11186453
   0.03728818]
 [ 0.19031648  0.18246838  0.0156962  ...,  0.06474684  0.          0.        ]
 [ 0.          0.          0.00392734 ...,  0.06480112  0.17083933
   0.04909176]
 ..., 
 [ 0.09828723  0.0176917   0.00196574 ...,  0.16905404  0.          0.        ]
 [ 0.23960059  0.18657423  0.00589182 ...,  0.00392788  0.          0.01963939]
 [ 0.00392924  0.09430183  0.15913433 ...,  0.00392924  0.01768159
   0.00589386]]
[[ 0.          0.          0.         ...,  0.01570028  0.11186453
   0.03728818]
 [ 0.19031648  0.18246838  0.0156962  ...,  0.06474684  0.          0.        ]
 [ 0.          0.          0.00392734 ...,  0.06480112  0.17083933
   0.04909176]
 ..., 
 [ 0.09828723  0.0176917   0.00196574 ...,  0.16905404  0.          0.        ]
 [ 0.23960059  0.18657423  0.00589182 ...,  0.00392788  0.          0.01963939]
 [ 0.00392924  0.09430183  0.15913433 ...,  0.00392924  0.01768159
   0.00589386]]

我希望以最快的方式合并其中很多......如何制作它?列出所有数组,然后使用.dstack?感谢

编辑:确定.dstack不起作用,因为矩阵具有不同的尺寸......

例如a=[[128 values]...[128 values]]len(a)=300b=[[128 values]...[128 values]] len(b)=1000结果应为c=[[128 values]...[128 values]] len(c)=1300

1 个答案:

答案 0 :(得分:1)

2D数组的Numpy约定:第一个数字是行数,第二个数字是列数。

>>> import numpy as np
>>> a=np.zeros((2,5))
>>> a
array([[ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.]])
>>> a.shape
(2, 5)

使用vstack按行堆叠。

>>> a=np.zeros((300,128))
>>> b=np.zeros((1000,128))
>>> a.shape
(300, 128)
>>> b.shape
(1000, 128)
>>> c=np.vstack((a,b))
>>> c.shape
(1300, 128)
>>> len(c)
1300

Dstack实际上是一个深度堆栈:

>>> np.dstack((a,a)).shape
(300, 128, 2)

如果你有一个数组列表:

a=[array1,array2,...,arrayn]
c=np.vstack(a)