次の 2D 配列があるとします。
a = np.array([
[1, 2, 3],
[2, 3, 4],
])
2 番目の軸に沿ってゼロの列を追加して、次の結果を取得します。
b = np.array([
[1, 2, 3, 0],
[2, 3, 4, 0],
])
ベストアンサー1
np.r_[...]
(ドキュメント) そしてnp.c_[...]
(ドキュメント) は、np.vstack
およびの便利な代替手段ですnp.hstack
。括弧 () の代わりに角括弧 [] を使用することに注意してください。
いくつかの例:
: import numpy as np
: N = 3
: A = np.eye(N)
: np.c_[ A, np.ones(N) ] # add a column
array([[ 1., 0., 0., 1.],
[ 0., 1., 0., 1.],
[ 0., 0., 1., 1.]])
: np.c_[ np.ones(N), A, np.ones(N) ] # or two
array([[ 1., 1., 0., 0., 1.],
[ 1., 0., 1., 0., 1.],
[ 1., 0., 0., 1., 1.]])
: np.r_[ A, [A[1]] ] # add a row
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.],
[ 0., 1., 0.]])
: # not np.r_[ A, A[1] ]
: np.r_[ A[0], 1, 2, 3, A[1] ] # mix vecs and scalars
array([ 1., 0., 0., 1., 2., 3., 0., 1., 0.])
: np.r_[ A[0], [1, 2, 3], A[1] ] # lists
array([ 1., 0., 0., 1., 2., 3., 0., 1., 0.])
: np.r_[ A[0], (1, 2, 3), A[1] ] # tuples
array([ 1., 0., 0., 1., 2., 3., 0., 1., 0.])
: np.r_[ A[0], 1:4, A[1] ] # same, 1:4 == arange(1,4) == 1,2,3
array([ 1., 0., 0., 1., 2., 3., 0., 1., 0.])
丸括弧 () ではなく角括弧 [] を使用する理由は、Python が1:4
角括弧内のオブジェクトをスライスに変換するためです。