前回のおさらいと今回のテーマ
こんにちは!前回は、Jupyter Notebookの基本操作について学びました。Jupyter Notebookを活用することで、Pythonのコードをインタラクティブに実行し、結果をすぐに確認できるため、データ分析やAI開発が効率的に進められます。
今回は、Pythonの数値計算ライブラリであるNumPyについて解説します。NumPyは、高速な数値計算を可能にするライブラリで、AIやデータ分析の基礎となる重要なツールです。基本操作をしっかりと理解し、今後の開発に活用していきましょう!
NumPyとは?
NumPy(Numerical Pythonの略)は、Pythonで効率的に数値計算を行うためのライブラリです。特に以下の特徴があります。
- 高性能な多次元配列(ndarray): Pythonのリストよりも効率的な多次元配列(数値データの格納)が利用できます。
- 豊富な数値計算機能: 行列演算、統計計算、線形代数、乱数生成などの機能が豊富に揃っています。
- パフォーマンスの向上: NumPyはC言語で実装されており、Pythonのネイティブなリスト操作よりも大幅に高速です。
これらの機能を使いこなすことで、AI開発やデータ分析が非常に効率的になります。
NumPyのインストール
Anacondaを使用している場合、NumPyはデフォルトでインストールされていますが、手動でインストールしたい場合は以下のコマンドを使用します。
pip install numpy
それでは、NumPyの基本操作を学んでいきましょう。
NumPyの基本操作
1. NumPyのインポート
NumPyを使うためには、まずライブラリをインポートします。慣習として、NumPyはnp
というエイリアスを使ってインポートされます。
import numpy as np
2. ndarrayの作成
NumPyの中心的なデータ構造はndarray(N次元配列)です。まずは基本的な配列の作成方法を見ていきます。
1次元配列(ベクトル)の作成
# 1次元配列の作成
arr = np.array([1, 2, 3, 4, 5])
print(arr)
2次元配列(行列)の作成
# 2次元配列の作成
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(matrix)
3. 配列の属性
NumPy配列の属性を確認してみましょう。
- ndim: 配列の次元数
- shape: 配列の形状(各次元のサイズ)
- size: 配列全体の要素数
- dtype: 配列のデータ型
print(matrix.ndim) # 出力: 2(2次元)
print(matrix.shape) # 出力: (2, 3)(2行3列)
print(matrix.size) # 出力: 6(要素数は6)
print(matrix.dtype) # 出力: int64(デフォルトのデータ型)
4. 特殊な配列の作成
NumPyでは、特定の条件に基づいた配列を簡単に作成できます。
- zeros: 全ての要素が0の配列を作成
- ones: 全ての要素が1の配列を作成
- arange: 指定した範囲の連続した数値の配列を作成
- linspace: 等間隔の数値を持つ配列を作成
zeros = np.zeros((2, 3))
ones = np.ones((3, 3))
arange = np.arange(0, 10, 2) # 0から10まで2刻み
linspace = np.linspace(0, 1, 5) # 0から1まで等間隔で5つの値
print(zeros)
print(ones)
print(arange)
print(linspace)
5. 配列の操作
要素へのアクセスと変更
NumPyの配列はインデックスを使用して要素にアクセスできます。また、要素の値も簡単に変更可能です。
print(matrix[0, 2]) # 出力: 3(1行目の3列目)
matrix[1, 2] = 9 # 2行目の3列目を9に変更
print(matrix)
スライシング
リストと同様に、NumPy配列でもスライシングが可能です。
sub_array = matrix[0, 1:3] # 1行目の2列目から3列目までを取得
print(sub_array)
6. 配列の演算
NumPyでは、配列間の基本的な演算(加算、減算、乗算、除算)が可能です。これは、要素ごとに演算が行われます。
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b) # 出力: [5 7 9]
print(a * b) # 出力: [4 10 18]
行列の演算には、dot
関数を使います。
# 行列のドット積
c = np.array([[1, 2], [3, 4]])
d = np.array([[5, 6], [7, 8]])
result = np.dot(c, d)
print(result)
7. 統計関数
NumPyには、平均や中央値、標準偏差などの統計関数が用意されています。
arr = np.array([1, 2, 3, 4, 5])
print(np.mean(arr)) # 平均
print(np.median(arr)) # 中央値
print(np.std(arr)) # 標準偏差
8. 乱数の生成
AI開発では、乱数を使ってデータを生成することがよくあります。NumPyには、乱数を生成するための関数が豊富に揃っています。
random_array = np.random.rand(3, 3) # 0から1の範囲で3x3の乱数行列
normal_array = np.random.randn(3, 3) # 標準正規分布に従う乱数行列
print(random_array)
print(normal_array)
NumPyを活用した実践例
NumPyは数値データの操作だけでなく、グラフの作成やシミュレーションなど様々な場面で活用されます。以下に、簡単なシミュレーションの例を示します。
1. Sin波の作成
NumPyを使って、数学的な関数(例:sin波)を描画します。
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * np.pi, 100) # 0から2πまでの100点
y = np.sin(x)
plt.plot(x, y)
plt.title("Sine Wave")
plt.xlabel("x")
plt.ylabel("sin(x)")
plt.show()
まとめ
今回は、NumPyの基本操作について解説しました。NumPyを使いこなすことで、Pythonでの数値計算が高速かつ効率的に行えるようになります。AI開発やデータ分析の現場では、NumPyの基本操作をマスターすることが非常に重要です。
次回予告
次回は、データ操作ライブラリであるPandasについて解説します。Pandasは、NumPyと共にデータ分析でよく使われるライブラリで、データの読み込みや加工、操作が簡単に行えます。次回もお楽しみに!
注釈
- ndarray: NumPyのN次元配列オブジェクト。高速な数値演算が可能。
- ドット積: 行列間の積を計算する演算で、機械学習モデルの実装で頻繁に使われる。
コメント