这应该很容易...
我想连接数组 A、B 和 C。它们中的一个或多个可能不存在或为空。我希望将剩余的数组连接起来。例如,如果 B 为空,我想将 A 与 C 连接起来。
我已经阅读了这些似乎相关的问题:
如何从 numpy 数组列表中“删除”一个 numpy 数组?
我假设有一个 1-2 行的方式来做到这一点。
这应该很容易...
我想连接数组 A、B 和 C。它们中的一个或多个可能不存在或为空。我希望将剩余的数组连接起来。例如,如果 B 为空,我想将 A 与 C 连接起来。
我已经阅读了这些似乎相关的问题:
如何从 numpy 数组列表中“删除”一个 numpy 数组?
我假设有一个 1-2 行的方式来做到这一点。
连接空数组不是问题:
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.]])