1
0

Windows上でJupyter Notebookを実行してみる

Last updated at Posted at 2024-09-19

Jupyter Notebookの特徴と利便性

1. 対話的なコーディング

  • セルごとの実行: コードをセル単位で実行できるため、プログラム全体を再実行する必要がない。エラーや結果をすぐに確認し、必要な箇所だけ修正・再実行が可能。
  • 即時フィードバック: コードを実行するとすぐに結果が表示されるため、デバッグや検証が非常に効率的。

2. リッチな出力のサポート

  • グラフや図表の表示: matplotlib などのライブラリを使って、コードの結果をグラフや図表として表示できる。画像、ビデオ、HTMLコンテンツなどもインラインで表示可能。
  • Markdown サポート: セル内で Markdown を使ってテキストや数式、リンクを記述できる。これにより、コードに注釈を付けたり、ドキュメントとしても活用できる。

3. ドキュメントとコードの一体化

  • ノートの共有: コードとその結果、説明、注釈を一つのファイルで保存できる。データサイエンスや教育現場で、実行例とともに文書化されたノートブックを他人と簡単に共有できる。
  • プレゼンテーションの代用: ノートブックは、コードの解説や結果のプレゼンテーションとしても使える。MarkdownやHTMLサポートにより、視覚的に見やすい形式で内容を伝えられる。

4. 再現性のある研究

  • コードと結果の一貫性: ノートブック内に実行したすべてのコードとその結果が残るため、後で再現可能。研究やデータ分析の結果を再現しやすく、他人に共有する際にも役立つ。
  • 順番通りにコードを実行可能: セルごとにコードを実行できるが、全セルを順に再実行する機能もあり、全体を通して再現性を持たせることができる。

5. 複数言語サポート

  • Python以外の言語も対応: Pythonだけでなく、RやJulia、Scalaなど他のプログラミング言語のカーネルも使える。複数の言語を組み合わせたデータ分析や実験に最適。

6. データサイエンスや機械学習との親和性

  • データの可視化と分析: 大規模なデータセットを扱う際、データの可視化やリアルタイムでのデータ処理がしやすい。データサイエンスや機械学習のワークフローにおいて、コードと結果を逐一確認しながら進められる。
  • インタラクティブなウィジェット: ipywidgets を使って、スライダーやボタンなどのウィジェットを作成し、インタラクティブなUIを追加できる。これにより、動的にパラメータを変更しながらコードの結果を確認することが可能。

7. 容易な拡張性

  • プラグインや拡張機能: Jupyterには様々な拡張機能があり、デバッグ、コーディング支援、セルの統合など、機能を拡張して使いやすくできる。

8. クラウドでの実行

  • Google Colab などのクラウド環境での実行: Jupyter Notebook のフォーマットはクラウドサービスでもサポートされている。Google Colab などで、GPUを利用して機械学習モデルのトレーニングを行うことも簡単。

WindowsにPythonをインストールして、仮想環境を作成し、Jupyter Notebook を実行する手順は以下の通り。

1. Python のインストール

  1. Python公式サイト から最新版の Python をダウンロード。
  2. インストーラを起動し、以下の2つにチェックを入れる:
    • "Add Python to PATH"(これを忘れずにチェックする)
    • "Install Now" か "Customize installation"(Customizeで詳細な設定が可能)
  3. インストールが完了したら、コマンドプロンプト(cmd)を開き、インストールが成功しているか確認する。
python --version

Pythonのバージョンが表示されればインストール成功。

2. 仮想環境の作成

次に、仮想環境を作成する。

  1. コマンドプロンプト(cmd)を開く。
  2. プロジェクトのディレクトリに移動するか、仮想環境を作成したい場所に移動する。
  3. 仮想環境を作成するコマンドを実行する。
python -m venv myenv

myenv という名前の仮想環境が作成される。

3. 仮想環境の有効化

仮想環境を有効化する。

myenv\Scripts\activate

これで仮想環境がアクティブになり、以降の作業はこの仮想環境内で行われる。

4. 必要なパッケージのインストール

仮想環境内に numpymatplotlib、そして jupyter をインストールする。

pip install numpy matplotlib jupyter

これで、numpymatplotlib がインストールされ、Jupyter Notebook も使用できるようになる。

5. Jupyter Notebook の起動

次に、Jupyter Notebook を起動する。

jupyter notebook

コマンドを実行すると、ブラウザが自動的に開き、Jupyter Notebook のインターフェースが表示される。
image.png

6. 簡単なpythonスクリプトを実行してみる。

以下NewでPythonを選択しnotebookeを新規作成。以下の「モンテカルロ法で円周率を求めるスクリプト」をJupyter Notebookのセルに貼り付け、実行してみる。
image.png

import math
import numpy as np
from numpy import random
import matplotlib.pyplot as plt
%matplotlib inline

# 初期化
N_in = 0
N_out = 0
N = 1000000  # 試行回数
ran_x = random.rand(N)  # Xの乱数
ran_y = random.rand(N)  # Yの乱数
ran_point = np.hypot(ran_x, ran_y)  # X^2 + Y^2の平方根

# 点が円の内部か外部かをカウント
for i in ran_point:
    if i <= 1:
        N_in += 1
    else:
        N_out += 1

# パイの近似値
Pie = N_in / N * 4  # パイの近似式

# 結果の表示
print("IN: {} ".format(N_in))
print("OUT: {} ".format(N_out))
print("ALL: {} ".format(N))
print("Pi: {} ".format(Pie))

# グラフの描画
plt.scatter(ran_x, ran_y, marker=".", color="orange", label="POINT")

c1 = plt.Circle((0, 0), radius=1, fc="None", ec="blue", linewidth=2, color="black")
ax = plt.gca()
ax.add_patch(c1)
plt.axis("scaled")
plt.xlim(0, 1)
plt.ylim(0, 1)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("PLOT")

plt.show()

7. 実行結果

Nは実行回数。値を大きくすることで円周率に近づいていく。
image.png

8. ヒストグラム作成

import math
import numpy as np
from numpy import random
import matplotlib.pyplot as plt
%matplotlib inline
from statistics import mean, median,variance,stdev


N_in = 0
N_out = 0
N = 1000000 #試行回数
list_pi = []

def culculate():
    global N_in, N_out
    for i in range(1,100):

        ran_x = random.rand(N) #Xの乱数
        ran_y = random.rand(N) #Yの乱数
        ran_point = np.hypot(ran_x,ran_y) #X^2 + Y^2の平方根

        for i in ran_point:
            if i <= 1:
                N_in += 1
            else:
                N_out += 1

        Pie = N_in/N*4 
        list_pi.append(Pie)
        N_in = 0
        N_out = 0



def print_all():
    print("IN: {} ".format(N_in))
    print("OUT: {} ".format(N_out))
    print("ALL: {} ".format(N))
    print("Pi: {} ".format(Pie))


def draw_hist():
    kwargs = dict(histtype = "stepfilled", alpha = 0.7, density = True, bins = 20, color = "yellow", ec = "black")
    plt.hist(list_pi, **kwargs)
    plt.title("pi-list")
    plt.show()

culculate()
draw_hist()

stdev_pi = stdev(list_pi)
print(stdev_pi)

. 実行結果(ヒストグラム)

image.png

(参考)モンテカルロ法で円周率を求めるロジック

単位正方形内にランダムな点を打ち、その点が1/4円の内側にあるかを判定する。全点のうち、1/4円の内側にある点の割合を使って円周率を近似するという手法。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0