0

这应该很容易...

我想连接数组 A、B 和 C。它们中的一个或多个可能不存在或为空。我希望将剩余的数组连接起来。例如,如果 B 为空,我想将 A 与 C 连接起来。

我已经阅读了这些似乎相关的问题:

如何检查 numpy 数组是否为空?

如何从 numpy 数组列表中“删除”一个 numpy 数组?

我假设有一个 1-2 行的方式来做到这一点。

4

1 回答 1

4

连接空数组不是问题:

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.]])
于 2012-08-02T16:56:46.127 回答