これは簡単なはずです...
配列 A、B、C を連結したいのですが、そのうちの 1 つまたは複数が存在しないか空である可能性があります。残りの配列を連結したい。たとえば、B が空の場合、A と C を連結します。
関連すると思われるこれらの質問を読みました。
numpy 配列が空かどうかを確認するにはどうすればよいですか?
numpy配列のリストからnumpy配列をどのように「削除」しますか?
これを行うには1〜2行の方法があると思います。
これは簡単なはずです...
配列 A、B、C を連結したいのですが、そのうちの 1 つまたは複数が存在しないか空である可能性があります。残りの配列を連結したい。たとえば、B が空の場合、A と C を連結します。
関連すると思われるこれらの質問を読みました。
numpy 配列が空かどうかを確認するにはどうすればよいですか?
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.])
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.]])