はじめに
この実験では、NumPy配列の形状を操作するためのNumPy形状操作関数を学びます。
到達目標
- 配列の形状変更
- 配列の連結と分割
- 配列の転置
この実験では、NumPy配列の形状を操作するためのNumPy形状操作関数を学びます。
reshape
関数を使うと、NumPy配列の形状を変更できます。reshape
関数の構文は以下の通りです。
np.reshape(a, new_shape)
a
は入力配列で、new_shape
は配列の望ましい新しい形状です。ターミナルに次のコマンドを入力してPythonシェルを開きます。
python3
NumPyは既にインストールされていますので、Pythonコードでインポートできます。
import numpy as np
例として、形状(2, 3)の配列a
を作成します。
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.shape)
出力:
(2, 3)
この配列をreshape
関数を使って形状(3, 2)に変更できます。
b = np.reshape(a, (3, 2))
print(b.shape)
print(b)
出力:
(3, 2)
[[1 2]
[3 4]
[5 6]]
NumPyには、配列を連結するための2つの関数が用意されています。
np.split
関数を使って配列を分割できます。
例として、2つの配列a
とb
を作成します。
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
np.concatenate
関数を使って、これらの配列を最初の軸(0)に沿って連結できます。
c = np.concatenate((a, b))
print(c)
出力:
[1 2 3 4 5 6]
np.stack
関数を使って、これらの配列を新しい軸に沿って連結することもできます。
d = np.stack((a, b))
print(d)
print(d.shape)
出力:
[[1 2 3]
[4 5 6]]
(2, 3)
例として、形状(6,)の配列a
を作成します。
a = np.array([1, 2, 3, 4, 5, 6])
np.split
関数を使って、この配列を長さ3の2つの配列に分割できます。
b, c = np.split(a, 2)
print(b)
print(c)
出力:
[1 2 3]
[4 5 6]
transpose
関数を使うと、NumPy配列の軸を転置できます。transpose
関数の構文は以下の通りです。
a.transpose([axis1, axis2,...])
axis1
、axis2
などは転置する軸です。例として、形状(2, 3)の配列a
を作成します。
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
print(a.shape)
出力:
[[1 2 3]
[4 5 6]]
(2, 3)
transpose
関数を使ってこの配列を転置できます。
b = a.transpose()
print(b)
print(b.shape)
出力:
[[1 4]
[2 5]
[3 6]]
(3, 2)
また、配列の特定の軸を転置することもできます。たとえば、次のコードを使って、配列a
の軸を転置して形状(3, 2)にすることができます。
c = a.transpose(1, 0)
print(c)
print(c.shape)
出力:
[[1 4]
[2 5]
[3 6]]
(3, 2)
おめでとうございます!あなたはNumPy形状操作実験を完了しました。
この実験では、NumPy形状操作関数reshape
、concatenate
、stack
、split
、およびtranspose
を学びました。これらの関数を使うと、NumPy配列の形状を操作でき、多くのデータ操作タスクに欠かせないものです。