【Python】第7章第9回:numpyを使った数値計算の基本
本記事では、Pythonライブラリのnumpyを用いた数値計算の基礎について解説します。numpyの基本操作を理解し、効率的なデータ処理を学びましょう。
0. 記事の概要
この記事を読むメリット
- 高速計算の基礎理解:numpyを活用することで、効率的な数値計算を実現できます。
- 実践的なスキルの習得:多次元配列や数値計算に必要な操作を学べます。
- データ処理の応用力向上:numpyを利用して統計やデータ解析を始められます。
この記事で学べること
- numpyの基本概念とインストール方法
- 基本的な配列操作(生成、スライス、計算)
- 実践的な数値計算例
1. numpyとは何か?
1.1 基本概念
numpy(Numerical Python)は、Pythonで効率的な数値計算を可能にするライブラリです。以下のような特徴を持ちます。
- 多次元配列(ndarray): 高速な計算を実現するデータ構造
- 多数の数学関数: 統計や線形代数のための関数を提供
- 高速性: C言語ベースで構築され、高速に動作
1.2 インストール方法
# numpyのインストール
pip install numpy
2. 基本的な配列操作
2.1 配列の生成
# 配列の生成
import numpy as np
# リストから配列を作成
arr = np.array([1, 2, 3, 4, 5])
# 配列の初期化
zeros = np.zeros((2, 3)) # 全要素が0の2x3配列
ones = np.ones((3, 3)) # 全要素が1の3x3配列
print(arr)
print(zeros)
print(ones)
2.2 配列のスライスと計算
# 配列のスライスと計算
arr = np.array([10, 20, 30, 40, 50])
# スライス
print(arr[1:4]) # [20, 30, 40]
# 要素ごとの演算
print(arr * 2) # [20, 40, 60, 80, 100]
動作解説
- 配列生成:
np.zeros()
やnp.ones()
を使用して特定の形状を持つ配列を作成します。 - スライス: 配列から特定の範囲を切り出します。
- 演算: 配列全体に対して要素ごとの計算を実行します。
3. 応用例:統計とデータ解析
3.1 配列の統計処理
# 配列の統計処理
arr = np.array([1, 2, 3, 4, 5])
print(np.mean(arr)) # 平均
print(np.median(arr)) # 中央値
print(np.std(arr)) # 標準偏差
3.2 データの正規化
# データの正規化
data = np.array([10, 20, 30, 40, 50])
normalized_data = (data - np.min(data)) / (np.max(data) - np.min(data))
print(normalized_data)
動作解説
- 統計処理: 配列全体の平均や標準偏差を計算します。
- 正規化: データを0〜1の範囲にスケールします。
4. 練習問題
以下の課題に挑戦してみましょう。
- 2次元配列を作成し、特定の行や列をスライスして取り出してください。
- ランダムな配列を生成し、その配列の最大値と最小値を計算してください。
- 配列内の値を2倍し、新しい配列として出力してください。
5. 練習問題の解答と解説
問1〜3の解答例
# 問1: 2次元配列のスライス
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr[1, :]) # 第2行を取得
print(arr[:, 1]) # 第2列を取得
# 問2: ランダム配列の最大値と最小値
random_arr = np.random.rand(5)
print(f"最大値: {np.max(random_arr)}, 最小値: {np.min(random_arr)}")
# 問3: 配列内の値を2倍
original = np.array([1, 2, 3, 4, 5])
doubled = original * 2
print(doubled)
6. まとめ
本記事では、numpyを用いた数値計算の基本操作を学びました。次はこれらを応用して、より高度なデータ解析や機械学習に挑戦してみましょう。