NumPyは、科学計算、データ分析、機械学習に不可欠なPythonライブラリです。本記事では、NumPyの概要、機能、さまざまな応用方法について詳しく説明します。
Python NumPyの概要
NumPyとは何か?
NumPyとは、「Numerical Python」の略称で、数値データの大規模、多次元配列や行列を効率的に扱うためのライブラリです。数学、科学、工学の応用に適しているように設計されています。
NumPyの重要性
NumPyは、従来のPythonリストよりも配列と行列をより速く、効率的に操作できるため、非常に重要なツールです。また、データ分析、機械学習、科学計算にも必須のツールです。
NumPy配列
NumPy配列の作成
NumPy配列を作成するには、numpy.array()
関数を使用します。リスト、タプル、または他の配列から配列を作成できます。たとえば、次のコードは、リストからNumPy配列を作成します。
pythonCopy codeimport numpy as np
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
print(my_array)
出力結果は以下の通りです。
pythonCopy codearray([1, 2, 3, 4, 5])
NumPy配列のインデックスとスライス
NumPy配列は、従来のPythonリストと同様にインデックスやスライスでアクセスできます。次のソースコードは、numpy配列を作成し、その配列内の要素を抽出しています。
import numpy as np
my_array = np.array([1, 2, 3, 4, 5])
print(my_array[2]) # 3
print(my_array[1:4]) # [2 3 4]
配列演算
NumPy配列は、従来のPythonリストよりも高速に演算を行うことができます。たとえば、次のように2つのNumPy配列を加算することができます。
pythonCopy codeimport numpy as np
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])
result = array1 + array2
print(result) # [5, 7, 9]
NumPyの数学関数
基本的な数学関数
NumPyには、多くの基本的な数学関数が用意されています。たとえば、次のコードは、正弦関数、余弦関数、指数関数を計算します。
pythonCopy codeimport numpy as np
x = np.pi/2
sin = np.sin(x)
cos = np.cos(x)
exp = np.exp(1)
print("sin(pi/2) =", sin)
print("cos(pi/2) =", cos)
print("e^(1) =", exp)
出力結果は以下の通りです。
pythonCopy codesin(pi/2) = 1.0
cos(pi/2) = 6.123233995736766e-17
e^(1) = 2.718281828459045
線形代数関数
NumPyには、行列の演算に必要な多くの線形代数関数が用意されています。たとえば、次のコードは、2つの行列を乗算します。
pythonCopy codeimport numpy as np
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
result = np.dot(matrix1, matrix2)
print(result)
出力結果は以下の通りです。
pythonCopy codearray([[19, 22],
[43, 50]])
統計関数
NumPyには、多くの統計関数が用意されています。たとえば、次のコードは、平均値、中央値、標準偏差を計算します。
pythonCopy codeimport numpy as np
my_array = np.array([1, 2, 3, 4, 5])
mean = np.mean(my_array)
median = np.median(my_array)
std = np.std(my_array)
print("Mean =", mean)
print("Median =", median)
print("Standard Deviation =", std)
出力結果は以下の通りです。
pythonCopy codeMean = 3.0
Median = 3.0
Standard Deviation = 1.4142135623730951
多次元配列の操作
多次元配列
NumPyは、多次元配列を効率的に扱うことができます。例えば、以下の通りになります。
import numpy as np
my_array = np.array([1, 2, 3, 4, 5])
print(my_array[2]) # 3
print(my_array[1:4]) # [2 3 4]
配列演算
NumPy配列は、従来のPythonリストよりも高速に演算を行うことができます。たとえば、次のように2つのNumPy配列を加算することができます。
import numpy as np
my_array = np.array([[1, 2], [3, 4]])
print(my_array)
出力結果は以下の通りです。
pythonCopy codearray([[1, 2],
[3, 4]])
形状の変更
多次元配列の形状を変更することができます。たとえば、次のコードは、2次元配列を1次元配列に変換します。
pythonCopy codeimport numpy as np
my_array = np.array([[1, 2], [3, 4]])
new_array = my_array.reshape(1, 4)
print(new_array)
出力結果は以下の通りです。
pythonCopy codearray([[1, 2, 3, 4]])
転置
多次元配列を転置することができます。たとえば、次のコードは、2次元配列の行と列を入れ替えます。
pythonCopy codeimport numpy as np
my_array = np.array([[1, 2], [3, 4]])
new_array = my_array.T
print(new_array)
出力結果は以下の通りです。
pythonCopy codearray([[1, 3],
[2, 4]])
NumPyの高度な操作
ブロードキャスト
NumPyのブロードキャスト機能を使用することで、異なる形状の配列を演算することができます。たとえば、次のコードは、1次元配列とスカラーを加算します。
pythonCopy codeimport numpy as np
my_array = np.array([1, 2, 3])
result = my_array + 2
print(result)
出力結果は以下の通りです。
pythonCopy codearray([3, 4, 5])
ユニバーサル関数
NumPyのユニバーサル関数は、多くの要素に同じ関数を適用することができます。たとえば、次のコードは、1次元配列のすべての要素の平方根を計算します。
pythonCopy codeimport numpy as np
my_array = np.array([1, 4, 9])
result = np.sqrt(my_array)
print(result)
出力結果は以下の通りです。
pythonCopy codearray([1., 2., 3.])
結論
NumPyは、高速で効率的な多次元配列の操作を可能にする強力なライブラリです。NumPyの数学関数、線形代数関数、統計関数、多次元配列の操作、そして高度な操作について学びました。これらの機能を活用することで、Pythonプログラムのパフォーマンスを向上させることができます。
コメント