0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python】concatenate関数

0
Posted at

a = np.array([[1, 2],
[3, 4]])

b = np.array([[5, 6],
[7, 8]])

np.concatenate([a, b], axis=1)

concatenate関数で2次元の配列同士を結合する場合、「axis=1」を指定すると列方向への結合になります。デフォルトは「axis=0」で行方向への連結になります。

配列をそれぞれの引数で結合すると、以下の結果になります。

【axis=0】
array([[1, 2],
[3, 4],
[5, 6],
[7, 8]])

【axis=1】
array([[1, 2, 5, 6],
[3, 4, 7, 8]])

1次元と2次元など、次元数が違う場合は結合できません。また、1次元と1次元の結合は「axis=1」の軸がないため「axis=0」の結合となります。その場合、例えば[0, 1]と[2, 3]を結合すると[0, 1, 2, 3]となり、次元数は増えません。

2次元の配列同士を結合する場合、次の関数を使っても同じ結果になります。

【concatenate関数のaxis=0】
np.vstack([a, b])

【concatenate関数のaxis=1】
np.hstack([a, b])

vstackはverticalで垂直方向(行方向)、hstackはhorizontalで水平方向(列方向)への結合になります。

vsplitとhsplitは、結合ではなく分割する関数です。

次の配列で考えます。

c = np.array([[1, 2, 3],
[4, 5, 6]])

【vsplit(行方向の分割)】
d, f = np.vsplit(c, [1])
d ▶︎ array([[1, 2, 3]])
f ▶︎ array([[4, 5, 6]])

【hsplit(列方向の分割)】
d, f = np.hsplit(c, [2])
d ▶︎ array([[1, 2], [4, 5]])
f ▶︎ array([[3], [6]])

2つ目の引数の[1]や[2]は、分割する場所を指定します。分割の場所は「間」を指します。行の場合、1行目の前が[0]となるため、[1]を指定した場合は1行目と2行目の間を指します。例えば10行のデータを2等分する場合は、[5]を指定すれば5行目と6行目の間で分割されます。100行を2等分する場合は[50]を指定することになり、直感的に指定できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?