@KennyTMの答えは非常に洗練されており、実際にあなたのケースでうまくいきますが、配列を拡張するためのもう少し柔軟性を提供する可能性のある代替手段として試してくださいnp.repeat
:
>>> a = np.array([[1, 5, 9],
[2, 7, 3],
[8, 4, 6]])
>>> np.repeat(a,2, axis=1)
array([[1, 1, 5, 5, 9, 9],
[2, 2, 7, 7, 3, 3],
[8, 8, 4, 4, 6, 6]])
したがって、これは1つの軸に沿って繰り返すことを実現し、複数の軸に沿って(必要に応じて)取得するには、np.repeat
呼び出しをネストするだけです:
>>> np.repeat(np.repeat(a,2, axis=0), 2, axis=1)
array([[1, 1, 5, 5, 9, 9],
[1, 1, 5, 5, 9, 9],
[2, 2, 7, 7, 3, 3],
[2, 2, 7, 7, 3, 3],
[8, 8, 4, 4, 6, 6],
[8, 8, 4, 4, 6, 6]])
また、最初の行または列の繰り返し回数を変えることもできます。たとえば、最後の行を除く各行を 2 回繰り返したい場合は、次のようにします。
>>> np.repeat(a, [2,2,1], axis=0)
array([[1, 5, 9],
[1, 5, 9],
[2, 7, 3],
[2, 7, 3],
[8, 4, 6]])
ここで、2 番目の引数が a のlist
場合、行単位 (この場合は行axis=0
) を指定し、行ごとに繰り返します。