Python NumPy numpy.concatenate() 関数

Minahil Noor 2023年1月30日
  1. numpy.concatenate() の構文
  2. コード例:numpy.concatenate()
  3. コード例:numpy.concatenate() で多次元配列を渡す
  4. コード例:axis パラメーターを使用して多次元配列を渡すための numpy.concatenate()
Python NumPy numpy.concatenate() 関数

Python NumPy numpy.concatenate() 関数は複数の配列を指定した軸上で連結します。配列のシーケンスをパラメータとして受け取り、それらを一つの配列に結合します。

numpy.concatenate() の構文

numpy.concatenate((a1, a2, ...), axis=0, out=None)

パラメータ

a1, a2,... 配列のような構造の配列です。これは連結する入力配列の配列です。入力配列は同じ形をしていなければならません。
axis 整数。この関数が配列を連結する軸を表します。デフォルト値は 0 であり、配列の連結は行単位で行われることを意味します。1 を指定すると列単位の連結になります。
out N 次元の配列です。これは、連結された配列の最終的な形状を示します。これが指定された場合、その形状は出力される連結配列と一致しなければなりません。

戻り値

N 次元の配列を返します。この配列は入力配列の連結を示します。

コード例:numpy.concatenate()

最初に numpy.concatenate 関数を用いて 1 次元配列を連結します。

import numpy as np

a1 = np.array([45, 12, 65, 78, 9, 34, 12, 11, 2, 65, 78, 82, 28, 78])
print("First array:")
print(a1)
a2 = np.array([89, 34, 56, 87, 90])
print("Second array:")
print(a2)
outarray = np.concatenate([a1, a2])
print("Concatenated array:")
print(outarray)

出力:

First array:
[45 12 65 78  9 34 12 11  2 65 78 82 28 78]
Second array:
[89 34 56 87 90]
Concatenated array:
[45 12 65 78  9 34 12 11  2 65 78 82 28 78 89 34 56 87 90]

この関数は連結された配列を返しました。出力配列を 2 番目の配列から始めたい場合は、最初に 2 番目の配列をパラメーターとして渡すだけです。

コード例:numpy.concatenate() で多次元配列を渡す

これから多次元配列を渡します。

import numpy as np

a1 = np.array([[11, 12], [15, 10]])
print("First array:")
print(a1)
a2 = np.array([[10, 13], [15, 8]])
print("Second array:")
print(a2)
a3 = np.array([[11, 5], [34, 78]])
print("Third array:")
print(a3)
outarray = np.concatenate((a1, a2, a3))
print("Concatenated array:")
print(outarray)

出力:

First array:
[[11 12]
 [15 10]]
Second array:
[[10 13]
 [15  8]]
Third array:
[[11  5]
 [34 78]]
Concatenated array:
[[11 12]
 [15 10]
 [10 13]
 [15  8]
 [11  5]
 [34 78]]

出力は、入力配列が結合されて一つの配列になったことを示しています。

コード例:axis パラメーターを使用して多次元配列を渡すための numpy.concatenate()

ここでは、axis を 0 とした多次元配列のシーケンスをパラメータとして渡します。結果として得られる配列は、行方向に連結を表示します。

import numpy as np

a1 = np.array([[11, 12, 5], [15, 6, 10]])
print("First array:")
print(a1)
a2 = np.array([[10, 8, 13], [12, 15, 8]])
print("Second array:")
print(a2)
a3 = np.array([[11, 12, 5], [34, 78, 90]])
print("Third array:")
print(a3)
outarray = np.concatenate((a1, a2, a3))
print("Concatenated array:")
print(outarray)

出力:

First array:
[[11 12  5]
 [15  6 10]]
Second array:
[[10  8 13]
 [12 15  8]]
Third array:
[[11 12  5]
 [34 78 90]]
Concatenated array:
[[11 12  5]
 [15  6 10]
 [10  8 13]
 [12 15  8]
 [11 12  5]
 [34 78 90]]

axis のデフォルト値が 0 であるため、出力配列は配列を行単位で連結したものを表示していることに注意してください。

ここでは、axis の値を 1 に設定します。

import numpy as np

a1 = np.array([[11, 12, 5], [15, 6, 10]])
print("First array:")
print(a1)
a2 = np.array([[10, 8, 13], [12, 15, 8]])
print("Second array:")
print(a2)
a3 = np.array([[11, 12, 5], [34, 78, 90]])
print("Third array:")
print(a3)
outarray = np.concatenate((a1, a2, a3), axis=1)
print("Concatenated array:")
print(outarray)

出力:

First array:
[[11 12  5]
 [15  6 10]]
Second array:
[[10  8 13]
 [12 15  8]]
Third array:
[[11 12  5]
 [34 78 90]]
Concatenated array:
[[11 12  5 10  8 13 11 12  5]
 [15  6 10 12 15  8 34 78 90]]

出力配列は、列が増加するように連結されていることを示します。