トップページ -> データベース研究スタート -> Python -> Google Colab を使ってみる
[サイトマップへ]  

Google Colab を使ってみる

Google Colab はオンラインの Python 開発環境

前準備

使用するには Google アカウントが必要

  1. Google Colab のWebページを開く

    https://colab.research.google.com

  2. ファイル」で、「PYTHON 3 の新しいノートブックの新規作成」を選ぶ

  3. Google アカウントでログインする

  4. コードセルの中に Python プログラムを書き、「再生ボタン」をクリック

  5. コードセルを追加したいときは、「挿入」で、「コードセル」をクリック

オブジェクトのタイプ

print( type(100) )
print( type(1.23) )
print( type("Hello") )
print( type(True) )
print( type(False) )
print( type([1, 2, 3]) )
import numpy as np
print( type(np.zeros(10)) )

1次元配列

0要素

import numpy as np
x = np.zeros(10)
print(x)
print(type(x))
print(x.shape)

1要素

import numpy as np
x = np.ones(10)
print(x)
print(type(x))
print(x.shape)

乱数

import numpy as np
x = np.random.randn(10)
print(x)
print(type(x))
print(x.shape)

要素指定

import numpy as np
x = np.array([3, 1, 2, 5, 4])
print(x)
print(type(x))
print(x.shape)

arange

import numpy as np
x = np.arange(-5, 4, 2)
print(x)
print(type(x))
print(x.shape)

linespace

import numpy as np
x = np.linspace(-2, 2, 9)
print(x)
print(type(x))
print(x.shape)

2次元配列

import numpy as np
x = np.zeros((2, 3))
print(x)
print(type(x))
print(x.shape)
import numpy as np
x = np.ones((2, 3))
print(x)
print(type(x))
print(x.shape)
import numpy as np
x = np.random.randn(2,3)
print(x)
print(type(x))
print(x.shape)

メッシュグリッド

import numpy as np
X, Y = np.meshgrid( np.array([2, 3, 4]), np.array([10, 20]) )
print(X)
print(type(X))
print(X.shape)
print(Y)
print(type(Y))
print(Y.shape)

CSV ファイル読み書き

CSV ファイル書き出し.pandas 経由で行う

import numpy as np
import pandas as pd
X, Y = np.meshgrid( np.array([2, 3, 4]), np.array([10, 20]) )
XX = pd.DataFrame(X)
print(XX)
XX.to_csv("XX.csv", header=False, index=False)
YY = pd.DataFrame(Y)
print(YY)
YY.to_csv("YY.csv", header=False, index=False)

CSV ファイル読み込み.pandas 経由で行う

pd.read_csv("XX.csv", header=None)
pd.read_csv("YY.csv", header=None)

配列の次元を増やす

1次元を2次元に

import numpy as np
x = np.array([3, 1, 2, 5, 4])
A = x[:, np.newaxis]
B = x[np.newaxis, :]
print(A)
print(type(A))
print(A.shape)
print(B)
print(type(B))
print(B.shape)

リスト

a = [1, 2, 3, 4]
print(a)
type(a)

添え字は 0 から開始する

a = [10, 20, 30]
print(a[1])
a[2] = 200
print(a)

散布図

散布図

import matplotlib.pyplot as plt
import numpy as n
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 3, 5]
plt.scatter(x, y)

3次元散布図

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import axes3d
fig = plt.figure()
ax = fig.add_subplot(111, projection = '3d')
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 3, 5]
z = [1, 1, 2, 2, 3]
ax.scatter(x, y, z, c='b')

メッシュグリッドと関数の3次元プロット

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import axes3d
fig = plt.figure()
ax = fig.add_subplot(111, projection = '3d')
X, Y = np.meshgrid( np.array([-2, -1, 0, 1, 2]), np.array([-3, -2, -1, 0, 1, 2, 3]) )
def f(x,y):
    return x * y
Z = f(X, Y)
ax.scatter(X, Y, Z, c='b')

メッシュグリッドと関数の3次元プロット. 今度は x1, x2 のソフトマックス関数

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import axes3d
fig = plt.figure()
ax = fig.add_subplot(111, projection = '3d')
X1, X2 = np.meshgrid( np.array([-2, -1, 0, 1, 2]), np.array([-3, -2, -1, 0, 1, 2, 3]) )
def softmax(x):
    A = np.exp(x - np.max(x))
    return A / A.sum()
def f(x1, x2):
    return softmax( np.array([x1, x2]) )
Z = f(X1, X2)
ax.scatter(X1, X2, Z[0], c='b')
fig = plt.figure()
ax = fig.add_subplot(111, projection = '3d')
ax.scatter(X1, X2, Z[1], c='b')

TenforFlow

行列の足し算

import tensorflow as tf
import numpy as np
with tf.Session():
  a = tf.constant( np.reshape([1, 1, 1, 1, 1, 1], (2, 3) ) ) 
  b = tf.constant( np.reshape( [1, 2, 3, 4, 5, 6], (2, 3) ) )
  c = tf.add(a, b)
  result = c.eval()

result