.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

特徴

言語

複数のプログラミングパラダイムに対応している。

実装

バージョン

Python 2

Python 2.x はレガシー

Python 3

ディストリビューション

公式

以下のインストーラーから(推奨)で使用しているもの。

pyenv

venv

pipenv

Anaconada

インストール

本体

インストーラーから(推奨)

MSストアから(非推奨)

Anacondaから

インストールの確認

その他

pip3

Visual Studio Codeプラグイン

#ref(): File not found: "VSCode.png" at page "Python"

Jupyter Notebook

ファースト・ステップ

インタプリタ(対話モード)

CMD or Anaconda Promptを起動する

Pythonインタプリタを起動する

Pythonインタプリタの実行

Pythonインタプリタの終了

対話モードを終了するには、 exit() を実行する。

スクリプトファイル

Pythonスクリプトファイルに保存

テキストファイルに

print("im hungry")

と書いて、拡張子を*.pyとして保存する(例 hungry.py)。

Pythonスクリプトファイルを実行

cdでカレントディレクトリに移動して、

>python hungry.py
im hungry

クラスの定義と実行

NumPy

Matplotlib

行列の計算

多次元配列

ベクトル

>>> import numpy as np
>>> a=np.array([1,2,3,4])
>>> print(a)
[1 2 3 4]
>>> np.ndim(a) # 配列の次元
1
>>> a.shape # 配列の形状
(4,)
>>> a.shape[0] # 次元の要素数
4

行列

行列とは、

    列↓
  ┌      ┐
行│○  ○│
→│      │
  │○  ○│
  └      ┘
>>> a=np.array([[1,2],[3,4],[5,6]])
>>> print(a)
[[1 2]
 [3 4]
 [5 6]]
>>> np.ndim(a) # 配列の次元
2
>>> a.shape # 配列の形状
(3, 2)

行列の積算

A行列 * B行列 =C行列

2行2列の場合

┌      ┐┌      ┐   ┌                    ┐
│a1  b1││a2  b2│   │a1a2+b1c2  a1b2+b1d2│
│      ││      │ = │                    │
│c1  d1││c2  d2│   │c1a2+d1c2  c1b2+d1d2│
└      ┘└      ┘   └                    ┘
  A行列    B行列              C行列
  2行2列    2行2列              2行2列

x行y列の場合

┌      ┐┌              ┐   ┌                                          ┐
│a1  b1││a2  b2  c2  d2│   │a1a2+b1e2  a1b2+b1f2  a1c2+b1g2  a1d2+b1h2│
│      ││              │   │                                          │
│c1  d1││e2  f2  g2  h2│ = │c1a2+d1e2  c1b2+d1f2  c1c2+d1g2  c1d2+d1h2│
│      │└              ┘   │                                          │
│e1  f1│                     │e1a2+f1e2  e1b2+f1f2  e1c2+f1g2  e1d2+f1h2│
└      ┘                     └                                          ┘
  A行列        B行列                             C行列
  3行2列        2行4列                             3行4列
┌      ┐┌  ┐   ┌         ┐
│a1  b1││a2│   │a1a2+b1b2│
│      ││  │ = │         │
│c1  d1││b2│   │c1a2+d1b2│
└      ┘└  ┘   └         ┘
  A行列   B行列     C行列
  2行2列   2行1列     2行1列

メソッド

NumPyのdot(ドット積)メソッドを使用する。

>>> a=np.array([[1,2,3],[4,5,6]])
>>> b=np.array([[1,2],[3,4],[5,6]])
>>> c=np.array([[1,2],[3,4]])
>>> d=np.array([7,8])
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
>>> b
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> c
array([[1, 2],
       [3, 4]])
>>> d
array([7, 8])
>>> np.dot(a, b)
array([[22, 28],
       [49, 64]])
>>> np.dot(b, c)
array([[ 7, 10],
       [15, 22],
       [23, 34]])
>>> np.dot(b, d)
array([23, 53, 83])
>>> np.dot(a, c) # A行列の列数とB行列の行数が一致しない。
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: shapes (2,3) and (2,2) not aligned: 3 (dim 1) != 2 (dim 0)

参考


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS