0

これは簡単なはずです...

配列 A、B、C を連結したいのですが、そのうちの 1 つまたは複数が存在しないか空である可能性があります。残りの配列を連結したい。たとえば、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.])

2D 配列の場合:

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 に答える