ヴァンロッサムのウェブサイト https://gvanrossum.github.io/
In [ ]:
a = 1
a
In [ ]:
a = 1
a = 5
a
算法 | 記号 |
---|---|
除算 | / |
除算(小数点以下切り捨て) | // |
加算 | + |
減算 | - |
乗算 | * |
べき乗 | ** |
剰余 | % |
In [ ]:
2296 / 3
In [ ]:
2296 // 3
In [ ]:
123 + 223
In [ ]:
33 - 4
In [ ]:
2 * 8
In [ ]:
2 ** 8
In [ ]:
14444 % 32
Pythonには複数の型が存在しますが、標準的なものを紹介する
これ以外のものは公式ドキュメントが詳しい
type()
を使用する
In [ ]:
## 数値
type(123)
In [ ]:
## 文字列
type('123')
In [ ]:
nums = (1, 2, 3)
nums
In [ ]:
nums[0]
In [ ]:
## 0番目の要素を変更してみるけどエラーになる
nums[0] = 5
In [ ]:
elements = ['H', 'C', 'O']
elements
In [ ]:
elements[0]
In [ ]:
## 中身を変更
elements[0] = 'N'
elements
In [ ]:
elements.append('Na')
elements
In [ ]:
elements.pop()
In [ ]:
elements
In [ ]:
element_d = {'H': 1, 'C': 15, 'O': 16}
element_d
In [ ]:
## key(キー)でvalue(値)にアクセス
element_d['C']
In [ ]:
## 値を変更
element_d['C'] = 12
element_d['C']
In [ ]:
## 存在しないキーを指定して代入すると項目を追加できる
element_d['N'] = 14
element_d
In [ ]:
## キーにタプルを使用可能
element_d[('C', 'C')] = 24
element_d
In [ ]:
## キーにリストは使えない(リストは値の中身を入れ替えられるので確実にキーと値を紐付けられず安全じゃない)
element_d[['C', 'C']] = 24
element_d
In [ ]:
element_d.keys()
In [ ]:
element_d.values()
In [ ]:
element_d.items()
In [ ]:
print('Hello World!!')
In [ ]:
## print関数の中で演算もできる
greeting = 'Hello World!!'
print(greeting*1000)
In [ ]:
v = 100
if v > 10:
print(v, 'is greater than 10')
In [ ]:
v = 5
if v > 10:
print(v, 'is greater than 10')
else:
print(v, 'is less than 10')
In [ ]:
v = 10
if v == 10:
print(v, 'is equal to 10')
elif v > 10:
print(v, 'is greater than 10')
else:
print(v, 'is less than 10')
In [ ]:
## 100以下のフィボナッチ数列を計算してみる
a, b = 0, 1
while b < 100:
print(b)
a, b = b, a+b
In [ ]:
## リストに保存された文字列の長さを出力してみる
## - len() は要素の数を返す関数
## - 文字列型は一文字が一つの要素として扱われるので、文字数が返ってくる
words = ['cat', 'window', 'defenestrate']
for word in words:
print(word, len(word))
In [ ]:
## リストに保存された文字列の長さを出力してみる(index番号もほしい!)
## - len() は要素の数を返す関数
## - 文字列型は一文字が一つの要素として扱われるので、文字数が返ってくる
## - enumerate()を使うと添字も取得できます
words = ['cat', 'window', 'defenestrate']
for index, word in enumerate(words):
print(index, word, len(word))
In [ ]:
## PythonではC言語風の書き方は存在しないのでこの処理をn回繰り返すといったときはこう書く
for i in range(5):
print(i)
In [ ]:
## 途中で処理を止める | break
for i in range(10):
print(i)
if i >= 5:
break
In [ ]:
## (ループの先頭に戻って)処理を続ける | continue
for i in range(20):
print(i)
if i >= 5:
continue
print('\n5未満だけ実行される\n')
In [ ]:
for i in range(1, 101):
if i % 15 == 0:
print("FizzBuzz")
elif i % 3 == 0:
print("Fizz")
elif i % 5 == 0:
print("Buzz")
else:
print(i)
In [ ]:
## 足し算をする関数
def add_num(a, b):
return a + b
# 実行してみる
add_num(32, 40)
pip
コマンドでモジュールをインストール(今回はDocker環境を使っているので実行しない)import ${module_name}
でモジュールを読み込むimport this
も同じ
In [ ]:
import os
In [ ]:
os.getcwd()
In [ ]:
import numpy as np # 慣例的に as np として省略した名前でimportすることが多い
a = np.array([1, 2, 3]) # numpyアレイを作成
a
In [ ]:
a.dtype
In [ ]:
b = np.array([1.2, 3.5, 5.1])
b
In [ ]:
b.dtype
In [ ]:
np.arange(6) # 1次元
In [ ]:
np.arange(12).reshape(4, 3) # 2次元
In [ ]:
np.arange(24).reshape(2, 3, 4) # 3次元
In [ ]:
np.random.rand(10, 10) # 10x10 の乱数行列
In [ ]:
## 引き算
a = np.array([20, 30, 40, 50])
b = np.arange(4)
a - b
In [ ]:
a * b # 掛け算
In [ ]:
a = np.random.rand(20)
a
In [ ]:
# 2番目の要素を取り出す
a[1]
In [ ]:
# 4番目から8番目の要素を取り出す
a[4:9]
In [ ]:
# 逆順で取り出す
a[::-1]
In [ ]:
a = np.random.rand(10, 3)
a
In [ ]:
a[0][0] # 1番目の配列の1番目の要素
In [ ]:
a[0, 0] # 1番目の配列の1番目の要素(書き方違い)
In [ ]:
a[0:5, 0] # 1番目から5番目の配列の1番目の要素
In [ ]:
def prod_2d(n=100):
a = np.random.rand(n, n)
b = np.random.rand(n, n)
c = np.zeros((n, n)) # zero 行列
for i in range(n):
for j in range(n):
for k in range(n):
c[i][j] = a[i][k] * b[k][j]
return c
In [ ]:
def prod_2d_np(n=100):
a = np.random.rand(n, n)
b = np.random.rand(n, n)
return np.dot(a, b)
In [ ]:
# numpy使わずに計算した場合
%timeit result = prod_2d(n=150)
In [ ]:
# numpyを使って計算した場合
%timeit result = prod_2d_np(n=150)
In [ ]:
import numpy as np # 乱数の生成に使用
np.random.seed(123) # 毎回同じ乱数が生成されるようにシード値を固定
In [ ]:
def square(nums):
results = []
for num in nums:
results.append(num ** 2)
return results
%timeit square(np.random.rand(1000000))
今回のようにJupyter notebookを使用せず、スクリプトファイルとして実行したい場合、テキストファイルとして保存してターミナル上で実行することになる。実はJupyter notebookでもターミナルを実行することができるのでかんたんなスクリプトを書いてみよう。
New
メニューから Text file
を選択
.py
に変更し、スクリプトを書く。この時 Language
タブからPythonを選んでおくとシンタックスハイライトが有効になる
Terminal
を選択し、ターミナルを起動する(ブラウザ経由でターミナルを操作できます)
chemo/beginner
へ移動し、 python sample.py
を実行する