PythonのNumPyについて:網羅的に解説

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プログラムのパフォーマンスを向上させることができます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次