第3回Python解説 ステップアップ編 - 応用を極める!Web アプリケーション、データ分析、そして機械学習へ
前回の記事では、Python のモジュール、パッケージ、応用的な文法、例外処理、ファイル入出力について解説しました。今回は、Python を使って実際にどのようなことができるのか、Web アプリケーション開発、データ分析、機械学習の 3 つの分野に焦点を当て、具体的な例を交えながら、さらに詳しく解説します。
1. Web アプリケーション開発
Python は、Web アプリケーション開発にも広く使われています。ここでは、Flask という軽量なフレームワークを使って、簡単な Web アプリケーションを作成する例を紹介します。
1.1. Flask のインストール
まず、Flask をインストールします。
Bash
pip install Flask
1.2. Web アプリケーションの作成
Python
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route("/", methods=["GET", "POST"]) # ルート URL にアクセスした時の処理 (GET と POST に対応)
def index():
if request.method == "POST": # POST リクエストの場合
name = request.form["name"] # フォームから名前を取得
return render_template("result.html", name=name) # 結果ページを表示
else: # GET リクエストの場合
return render_template("index.html") # 入力フォームを表示
if __name__ == "__main__":
app.run(debug=True) # 開発サーバーを起動
templates/index.html
:
HTML
<!DOCTYPE html>
<html>
<head>
<title>入力フォーム</title>
</head>
<body>
<h1>名前を入力してください</h1>
<form method="POST">
<input type="text" name="name">
<button type="submit">送信</button>
</form>
</body>
</html>
templates/result.html
:
HTML
<!DOCTYPE html>
<html>
<head>
<title>結果</title>
</head>
<body>
<h1>こんにちは、{{ name }} さん!</h1>
</body>
</html>
このコードを実行すると、http://127.0.0.1:5000/
で Web ページが表示されます。入力フォームに名前を入力して送信すると、結果ページが表示されます。
1.3. Flask の応用
Flask を使うと、HTML テンプレート (Jinja2)、データベース連携 (SQLAlchemy など)、Web フォーム (WTForms など)、認証機能 (Flask-Login など) など、より高度な Web アプリケーションを開発することができます。
2. データ分析
Python は、データ分析にも強力なツールを提供しています。ここでは、pandas というライブラリを使って、データ分析を行う例を紹介します。
2.1. pandas のインストール
まず、pandas をインストールします。
Bash
pip install pandas
2.2. データ分析の実行
Python
import pandas as pd
import matplotlib.pyplot as plt
# CSV ファイルからデータを読み込む
df = pd.read_csv("data.csv")
# データの先頭を表示
print(df.head())
# データの統計情報を表示
print(df.describe())
# 特定の列のデータを抽出
print(df["column_name"])
# データをグループ化して集計
print(df.groupby("column_name").sum())
# データをグラフで可視化
df.plot(kind="bar") # 棒グラフ
plt.show()
df.plot(kind="scatter", x="column1", y="column2") # 散布図
plt.show()
# 欠損値を処理
df.fillna(0) # 0で埋める
df.dropna() # 欠損値を削除
# 重複データを処理
df.drop_duplicates() # 重複データを削除
# データをソート
df.sort_values("column_name") # 特定の列でソート
pandas を使うと、データの読み込み、加工、集計、可視化、欠損値処理、重複データ処理、ソートなど、様々なデータ分析処理を簡単に行うことができます。
3. 機械学習
Python は、機械学習の分野でも広く使われています。ここでは、scikit-learn というライブラリを使って、簡単な機械学習モデルを作成する例を紹介します。
3.1. scikit-learn のインストール
まず、scikit-learn をインストールします。
Bash
pip install scikit-learn
3.2. 機械学習モデルの作成
Python
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# 訓練データ
X = [[1], [2], [3], [4], [5]] # 特徴量
y = [2, 4, 6, 8, 10] # 目的変数
# データを訓練データとテストデータに分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 線形回帰モデルを作成
model = LinearRegression()
# モデルを訓練
model.fit(X_train, y_train)
# 予測
y_pred = model.predict(X_test)
# モデルの評価
mse = mean_squared_error(y_test, y_pred) # 平均二乗誤差
print("平均二乗誤差:", mse)
# 新しいデータで予測
X_new = [[6]] # 新しいデータ
y_pred = model.predict(X_new)
print(y_pred) # [12.]
scikit-learn を使うと、様々な機械学習モデル (線形回帰、ロジスティック回帰、決定木、ランダムフォレストなど) を簡単に作成し、訓練、評価、予測を行うことができます。
まとめ
今回は、Python を使って Web アプリケーション開発、データ分析、機械学習を行う例を紹介しました。Python は、これらの分野以外にも、様々な分野で活用できる汎用性の高いプログラミング言語です。ぜひ、Python をマスターして、あなたのアイデアを形にしてください。
参考資料
- Flask ドキュメント: https://flask.palletsprojects.com/
- pandas ドキュメント: https://pandas.pydata.org/
- scikit-learn ドキュメント: https://scikit-learn.org/stable/
補足
この記事では、Python の応用的な内容について簡単に紹介しました。Python には、Web フレームワーク (Django など) やデータ可視化ライブラリ (matplotlib, seaborn など) など、さらに多くの機能があります。これらのライブラリを使うことで、より高度な Web アプリケーション開発やデータ分析、機械学習を行うことができます。