我有像这样的筛选描述符矩阵:
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)=300
和b=[[128 values]...[128 values]]
len(b)=1000
结果应为c=[[128 values]...[128 values]] len(c)=1300
答案 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)