Pythonをはじめから丁寧に。NumPy編
NumPyとは
NumPyはPythonの数値計算を行うための基本的なライブラリです。データ分析、科学計算、エンジニアリングなど、多くの分野で広く利用されています。この記事では、NumPyの基本的な使い方から、いくつかの高度な機能についても紹介します。Pythonには標準の数値型やリストがありますが、NumPyを使用することで、より大規模な数値データを効率的に扱うことができます。
NumPyのインストール
NumPyはPythonのパッケージですので、pip3を使って簡単にインストールできます。
pip3 install numpy
インストールが完了したら、Pythonスクリプトやインタラクティブシェルでimport numpy as npとしてインポートし、npというエイリアスでNumPyの関数やモジュールにアクセスします。
NumPyの基本:配列
NumPyの中核をなすのは、同じタイプの要素を持つ多次元配列です。これらはNumPyのndarrayオブジェクトによって提供されます。配列はリストとは異なり、すべての要素が同じデータタイプである必要があります。
配列を作成する基本的な方法は、リストをnp.arrayに渡すことです:
import numpy as np
a = np.array([1, 2, 3])
print(a) # 出力: [1 2 3]
配列の属性
配列は、形状(shape)、次元数(ndim)、要素のデータタイプ(dtype)など、多くの属性を持っています:
print(a.shape) # 出力: (3,)
print(a.ndim) # 出力: 1
print(a.dtype) # 出力: int64
配列の生成
NumPyには配列を生成するための多くの関数があります。例えば:
np.zeros: すべての要素が0の配列を生成します。
np.ones: すべての要素が1の配列を生成します。
np.arange: 連続した数値で配列を生成します。
np.linspace: 等間隔の数値で配列を生成します。
np.zeros((3, 3)) # 3x3の全て0の2次元配列
np.ones((2, 2)) # 2x2の全て1の2次元配列
np.arange(10) # 0から9までの数値で配列を生成
np.linspace(0, 1, 5) # 0から1までを5分割した数値で配列を生成
配列の操作
NumPy配列は、スライシングやインデックス参照を使って簡単に操作できます。また、配列同士の算術演算もサポートされています。
b = np.array([[1,2,3], [4,5,6]])
print(b[0, 0]) # 出力: 1
print(b[:, 1]) # 出力: [2 5]
print(b + a) # 配列の加算
高度な機能
NumPyには、線形代数演算、フーリエ変換、乱数生成など、多くの高度な機能があります。これらの機能を利用することで、科学計算やデータ分析を高度に行うことができます。
まとめ
NumPyはPythonでの数値計算のための非常に強力なライブラリです。この記事では基本的な使い方を紹介しましたが、NumPyにはさらに多くの機能があります。公式ドキュメントやオンラインリソースを参照して、NumPyのさらなる機能について学んでみてください。
次はNumPyでフーリエ変換をしていきたいと思います。