【0から学ぶAI】第214回:NumPy入門 〜数値計算ライブラリNumPyの基本を解説

目次

前回のおさらいと今回のテーマ

こんにちは!前回は、Jupyter Notebookの基本操作について学びました。Jupyter Notebookを活用することで、Pythonのコードをインタラクティブに実行し、結果をすぐに確認できるため、データ分析やAI開発が効率的に進められます。

今回は、Pythonの数値計算ライブラリであるNumPyについて解説します。NumPyは、高速な数値計算を可能にするライブラリで、AIやデータ分析の基礎となる重要なツールです。基本操作をしっかりと理解し、今後の開発に活用していきましょう!

NumPyとは?

NumPy(Numerical Pythonの略)は、Pythonで効率的に数値計算を行うためのライブラリです。特に以下の特徴があります。

  1. 高性能な多次元配列(ndarray): Pythonのリストよりも効率的な多次元配列(数値データの格納)が利用できます。
  2. 豊富な数値計算機能: 行列演算、統計計算、線形代数、乱数生成などの機能が豊富に揃っています。
  3. パフォーマンスの向上: 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次元配列オブジェクト。高速な数値演算が可能。
  • ドット積: 行列間の積を計算する演算で、機械学習モデルの実装で頻繁に使われる。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社PROMPTは生成AIに関する様々な情報を発信しています。
記事にしてほしいテーマや調べてほしいテーマがあればお問合せフォームからご連絡ください。
---
PROMPT Inc. provides a variety of information related to generative AI.
If there is a topic you would like us to write an article about or research, please contact us using the inquiry form.

コメント

コメントする

目次