串联空数组是没有问题的:
In [1]: a = np.arange(10)
In [2]: b = np.array([])
In [3]: c = np.arange(3)
In [4]: np.concatenate((a,b,c))
Out[4]: array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 0., 1., 2.])
对于二维数组:
In [1]: a = np.arange(12.0).reshape((4,3))
In [2]: b = np.arange(24.0).reshape((8,3))
In [3]: c = np.array([])
In [4]: np.concatenate([x for x in [a,b,c] if x.size > 0])
Out[4]:
array([[ 0., 1., 2.],
[ 3., 4., 5.],
[ 6., 7., 8.],
[ 9., 10., 11.],
[ 0., 1., 2.],
[ 3., 4., 5.],
[ 6., 7., 8.],
[ 9., 10., 11.],
[ 12., 13., 14.],
[ 15., 16., 17.],
[ 18., 19., 20.],
[ 21., 22., 23.]])
你是什么意思时,你说“可能不存在”吗? – user545424 2012-08-02 16:56:09
A,B和C是列表中的数组,我可能会采用超出范围的索引。但为了保持这一点更一般,任何情况下A,B和/或C可能都没有生成。 – 2012-08-02 17:01:47