Scipy
使用的模块:
import numpy as np import scipy.optimize as opt import scipy.spatial.distance as dis
Exercise 10.1: Least squares
def my_argmin(x, A, b): x = np.reshape(x, (10, 1)) return np.linalg.norm(np.dot(A, x) - b, ord = 2) #np.random.seed() A = np.random.randint(-3, 3, (20, 10)) a = np.random.randint(-3, 3, (10, 1)) b = np.random.randn(20, 1) print(A) print(b) r = opt.minimize(my_argmin, np.transpose(a), args=(A, b)) norm_result = np.linalg.norm(np.dot(A, np.transpose(r.x)) - b, ord = 2)
Exercise 10.2: Optimization
def func(x): return -(np.sin(x-2)**2)*np.exp(-(x**2)) x = -3 re = opt.fmin(func, x) re_max = (np.sin(re-2)**2)*np.exp(-(re**2)) print("The maximum of the function: ", re_max)
Exercise 10.3: Pairwise distances
X = np.random.randint(1, 100, (10, 5)) print("The matrix:\n", X) sq_dists = dis.pdist(X, metric = 'euclidean') mat_sq_dists = dis.squareform(sq_dists) print("Table:\n", mat_sq_dists)