モジュールを利用する場合,以下のように書く.
import module # moduleの利用
module.function() # module内にある関数functionを使う
毎回module
と書くことはプログラムを長くする可能性があり不便だ.
そのため,以下のような書き方もできる.
from module import function # module内の関数functionのみを読み込む
function()
この書き方の場合,module
内の関数functionのみを読み込んでいるため,module
内の他の関数を利用することはできない.
また,モジュール名や関数名を置き換えるときに,as
という予約語を用いる.
例えば,次のように書くことできる
import numpy as np # numpyというモジュールをnpと表す
print(np.e)
In [1]:
import math
print(math.sqrt(2))
print(math.exp(2))
print(math.sin(2))
他にも次のような定数も利用できる.
math.pi
math.e
In [2]:
print(math.pi, math.e)
In [3]:
import numpy as np
vec = np.array([[1, 2]]) # 1次元の配列をNumpy配列(ベクトル)にする
matrix = np.array([[1, 3], [6, 4]]) # 2次元の配列をNumpy配列(行列)にする
print(vec)
print(matrix)
すべての要素が1や0になる特殊なメソッドがある.
In [4]:
print(np.ones(3)) # 3次元の1ベクトル
print(np.zeros(3)) # 3次元の0ベクトル
print(np.ones((2, 3))) #2x3次元の1行列
print(np.zeros((2, 3))) #2x3次元の0行列
In [5]:
print("dtype", matrix.dtype) # 型を表示する
print("shape", matrix.shape) # サイズ(次元)
In [6]:
A = np.array([[1, 3], [6, 4]])
print("*演算:\n", A*A) # 行列Aどうしの要素積
print("np.dot:\n", np.dot(A, A)) # 行列Aどうしの行列積
B = np.matrix([[1, 3], [6, 4]])
print("*演算:\n", B*B) # 行列Bどうしの行列積
print("np.dot:\n", np.dot(B, B)) # 行列Bどうしの行列積
In [7]:
from scipy.optimize import fmin_bfgs
import matplotlib.pyplot as plt
%matplotlib inline
def f(x):
return x ** 2 + 17 * np.sin(x)
x = np.arange(-10, 10, 0.1)
plt.plot(x, f(x))
Out[7]:
In [8]:
x_star = fmin_bfgs(f, 0) # 関数f(x)の最適化(最小値をとるxを求める)
In [10]:
plt.xlim(-10, 10)
plt.plot(x, f(x))
plt.scatter(x_star, f(x_star), c='red');