すぐるホームページ > きしも.com > pythonのまとめ

pythonのまとめ

pythonは,データサイエンスの分野で最適なプログラミング言語です。
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 で勉強させてもらった内容を,自分に都合良くまとめました。

目次
ダウンロード
インタープリタ 起動算術計算データ型変数リストディクショナリブーリアンif 文for 文関数
スクリプトファイル ファイル保存クラス

ダウンロード
https://www.continuum.io/downloads

pythonインタープリタ
内容入力出力脚注
起動コマンドプロントにおいて,pythonと入力
算術計算 1 + 1 2
3 / 5 0.6
データ型 type(5) <class 'int'>
type(3.14) <class 'float'>
type("suguru") <class 'str'>
変数 x = 5
print(x)
5
x = 100
print(x)
100
y = 3.14
x * y
314.0
type(x * y) <class 'float'>
a, b, c = 5, 8, 13
b
8
リスト a = [10, 20, 30, 40, 50]
a
[10, 20, 30, 40, 50]
len(a) 5
a[0] 10
a[4] 50
a[4]=70
a
[10, 20, 30, 40, 70]
a[0 : 2] [10, 20] インデックスの 0 番目から 2 番目の直前まで
a[1: ] [20, 30, 40, 70] インデックスの 1 番目から最後まで
a[ :3] [10, 20, 30] 最初からインデックスの 3 番目の直前まで
a[: -1] [10, 20, 30, 40] 最初から 1 番最後の直前まで
a[: -2] [10, 20, 30] 最初から,最後から 2 番目の直前まで
ディクショナリ b = {'suzuki':80, 'satou':60}
b
{'suzuki':80, 'satou':60}
b['satou'] 60
b['tanaka'] = 100
b
{'suzuki':80, 'satou':60, 'tanaka':100} 新しい要素を追加
ブーリアン a = True
b = False
type(a)
<class 'bool'>
not a False
a and b False
a or b True
if 文 sato = True
if sato:
    print("I'm Sato")
else:
    print("I'm not Sato")
I'm Sato
「他にもし」のときは elif
for 文 for i in [10, 20, 30]:
    print(i)
10
20
30

関数 def hw():
    print("Hello world!")

Hello world!
def hw(str):
    print("Hello " + str + "!")

hw("dog")
Hello dog!

pythonスクリプトファイル
内容入力出力
ファイル保存 たとえば bussy.py というファイルを作成し, 中に

I'm bussy!

という1行だけを入れる。
そして, コマンドプロンプト(ターミナル)を
そのファイルがあるディレクトリ(フォルダ)に移動し,

python bussy.py

と入力
I'm bussy!
クラス class Car:
    def __init__(self, name):
        self.name = name
        print("Init OK")

    def speed(self, x):
        print(self.name + "'s speed = " + x)

    def price(self, x):
        print(self.name + "'s price = " + x + " yen")

a = Car("Suguru")
a.speed("100")
a.price("30")
Init OK
Suguru's speed = 100
Suguru's price = 30 yen

NumPy
内容入力出力
インポートimport numpy as np
配列作成x = np.array([1.0, 2.0, 3.0, 4.0])
print(x)
[ 1. 2. 3. 4.]
type(x)<class 'numpy.ndarray'>
要素ごと計算y = np.array([2.0, 5.0, 12.0, 10.0])
x + y
array([ 3., 7., 15., 14.])
x - yarray([ -1., -3., -9., -6.])
x * yarray([ 2., 10., 36., 40.])
x / yarray([ 0.5, 0.4, 0.25, 0.4 ])
ブロードキャストx + 3array([ 4., 5., 6., 7.])
x - 2array([ -1., 0., 1., 2. ])
x * 2array([ 2., 4., 6., 8.])
x / 4array([ 0.25, 0.5, 0.75, 1. ])
多次元配列A = np.array([[1, 2], [3, 4]])
print(A)
[[1 2
 [3 4]]
A.shape(2, 2)
A.dtypedtype('int32')
B = np.array([[5, 6], [0, 8]])
A + B
array([[ 6,  8],
         [ 3, 12]])
A * Barray([[ 5, 12],
         [ 0, 32]])
A * 2array([[ 2, 4],
         [ 6, 8]])
C = np.array([5, 7])
A+C
array([[ 6, 9],
         [ 8, 11]])
D = no.array([[8], [10]])
A+D
array([[ 9, 10],
         [ 13, 14]])
要素A[0]array([1, 2])
A[0][1]2
for r in A:
    print(r)
    
[1 2]
[3 4]
for r in A:
    for c in r:
        print(c)
    

1
2
3
4
# Aを 1 次元の配列へ変換
P = A.flatten()
# 0, 1, 3 番目の要素を取得
P[np.array([0, 1, 3])]
array([1, 2, 4])
A > 1
# 不等号などを使うと結果はブーリアンの配列になる
array([[False, True],
         [ True, True]], dtype=bool)
A[A > 1]array([2, 3, 4])
np.sum(A[A > 1])9

Matplotlib
内容入力出力
sinグラフ描画 import numpy as np
import matplotlib.pyplot as plt
# 0 から 10 まで 0.05 刻みの配列生成
x = np.arange(0, 10, 0.05)
y = np.sin(x)
plt.plot(x, y)
plt.show()
sin, cos
グラフ描画
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label="sin")
plt.plot(x, y2, label="cos", linestyle="--")
plt.xlabel("X")
plt.ylabel("Y")
plt.title('sin & cos graph')
plt.legend()
plt.show()
画像表示 import matplotlib.pyplot as plt
from matplotlib.image import imread

img = imread('ttms.png')
plt.imshow(img)

plt.show()
きしも.com