データ分析や機械学習の分野では、PythonのライブラリであるNumPyが重要な役割を果たしています。
NumPyでは、多次元配列を効率的に扱うことができるndarrayというデータ構造が提供されています。
本記事では、ndarrayを使って四次元配列を扱う方法について、初心者向けにわかりやすく解説します。
ndarrayとは
ndarrayは、NumPy(Numerical Python)というPythonの数値計算ライブラリで提供されている、多次元配列を扱うためのデータ構造です。
NumPyは、科学計算やデータ分析などの分野で広く利用されており、ndarrayはその中心的な役割を果たしています。
NumPyの基本概念
NumPyは、Pythonのリストとは異なり、同じ型の要素を持つ多次元配列を効率的に扱うことができます。
これにより、行列計算やベクトル演算などの数値計算が高速に行えるようになります。
NumPyでは、次のような基本概念があります。
- 配列(Array): 同じ型の要素を持つ多次元配列
- 要素(Element): 配列の中の個々のデータ
- 次元(Dimension): 配列の階層の数。1次元配列、2次元配列、3次元配列など
- 軸(Axis): 配列の各次元に沿った方向。軸0、軸1、軸2など
- 形状(Shape): 配列の各次元の要素数。例えば、2行3列の2次元配列の形状は(2, 3)
ndarrayの特徴
ndarrayは、以下のような特徴を持っています。
- 同じ型の要素を持つ: ndarrayでは、すべての要素が同じ型である必要があります。これにより、メモリ効率や計算速度が向上します。
- 多次元配列を扱える: ndarrayは、1次元配列(ベクトル)から多次元配列(行列やテンソル)まで、さまざまな次元の配列を扱うことができます。
- 高速な数値計算が可能: NumPyは、C言語で実装されており、Pythonのリストよりも高速な数値計算が可能です。また、ベクトル演算や行列演算などの関数が豊富に用意されています。
- インデックスやスライスが容易: ndarrayでは、インデックスやスライスを使って、要素にアクセスしたり、部分配列を取り出したりすることが簡単にできます。
- ブロードキャスト機能: ndarrayでは、形状が異なる配列同士の演算が可能です。これにより、簡潔なコードで複雑な計算を行うことができます。
これらの特徴により、ndarrayはPythonプログラミングにおいて、数値計算やデータ分析を効率的に行うための強力なツールとなっています。
ndarrayで四次元配列を作成する方法
PythonのNumPyライブラリを使って、四次元配列を簡単に作成することができますが、事前にNumPyのインストールが必要です。
インストール済みかどうかわからない場合は一度下記のコードを実行してみてください。
import numpy as np
shape = (2, 2, 2, 2)
arr = np.zeros(shape)
print(arr)
実行時にエラーが発生した場合はNumPyがインストールされていないので、pip install numpy
をターミナルから実行してインストールしておいてください。
それでは、四次元配列を作成するための4つの方法を紹介します。
np.array()
を使った方法
np.array()
関数を使って、四次元配列を作成することができます。
リストを入れ子にして、四次元配列を表現し、それを np.array()
関数に渡すことで、四次元配列を作成できます。
import numpy as np
# 四次元配列を作成
data = [
[
[
[1, 2, 3],
[4, 5, 6]
],
[
[7, 8, 9],
[10, 11, 12]
]
],
[
[
[13, 14, 15],
[16, 17, 18]
],
[
[19, 20, 21],
[22, 23, 24]
]
]
]
arr = np.array(data)
print(arr)
[[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]]
[[[13 14 15]
[16 17 18]]
[[19 20 21]
[22 23 24]]]]
np.zeros()
を使った方法
np.zeros()
関数を使って、すべての要素が0の四次元配列を作成することができます。
引数に配列の形状をタプルで指定します。
import numpy as np
# すべての要素が0の四次元配列を作成
shape = (2, 2, 2, 3)
arr = np.zeros(shape)
print(arr)
[[[[0. 0. 0.]
[0. 0. 0.]]
[[0. 0. 0.]
[0. 0. 0.]]]
[[[0. 0. 0.]
[0. 0. 0.]]
[[0. 0. 0.]
[0. 0. 0.]]]]
np.ones()
を使った方法
np.ones()
関数を使って、すべての要素が1の四次元配列を作成することができます。
引数に配列の形状をタプルで指定します。
import numpy as np
# すべての要素が1の四次元配列を作成
shape = (2, 2, 2, 3)
arr = np.ones(shape)
print(arr)
[[[[1. 1. 1.]
[1. 1. 1.]]
[[1. 1. 1.]
[1. 1. 1.]]]
[[[1. 1. 1.]
[1. 1. 1.]]
[[1. 1. 1.]
[1. 1. 1.]]]]
np.random.rand()
を使った方法
np.random.rand()
関数を使って、0から1の範囲でランダムな値を持つ四次元配列を作成することができます。
引数に配列の形状を指定します。
import numpy as np
# 指数表記の無効化
np.set_printoptions(precision=2, suppress=True)
# ランダムな値を持つ四次元配列を作成
shape = (2, 2, 2, 3)
arr = np.random.rand(*shape)
print(arr)
[[[[0.44 0.92 0.24]
[0.27 0.90 0.87]]
[[0.02 0.40 0.41]
[0.75 0.05 0.81]]]
[[[0.47 0.77 0.90]
[0.61 0.36 0.46]]
[[0.54 0.98 0.60]
[0.77 0.36 0.40]]]]
以上の方法を使って、PythonのNumPyライブラリを使って四次元配列を簡単に作成することができます。
適切な方法を選んで、四次元配列を作成しましょう。