Exercise 1: Least squares
题意
题解
要求出最小二乘解 x 和残差的范数,用 scipy.linalg.lstsq 函数。
from numpy import random from scipy import linalg m = 30 n = 20 A = random.randn(m, n) b = random.randn(m, 1) x, residual, rank, s = linalg.lstsq(A, b) print(x) print(residual)
Exercise 2: Optimization
题意
题解
求一元函数的最大值,用 scipy.optimize.minimize_scalar 函数。该函数返回一个 OptimizeResult 类,x 和 fun 属性分别是一元函数的最小值点和最小值。先把原函数 f 取反,代入 minimize.scalar 函数,再把求得的最小值取反,就得到了 f 的最大值。
from scipy import optimize from numpy import sin, power, exp def f(x): return -(power(sin(x - 2), 2) * exp( - power(x, 2))) res = optimize.minimize_scalar(f) if res.success: print(res.x) print(-res.fun)
Exercise 3: Pairwise distances
题意
扫描二维码关注公众号,回复:
1447685 查看本文章
题解
题目让求出矩阵 X 中每两个行向量之间的距离,还不让自己写函数。用 scipy.spatial.distance_matrix 可以求解。
from scipy import spatial from numpy import random n = 10 m = 2 X = random.randint(1, 100, (n, m)) dst = spatial.distance_matrix(X, X) print(X) print(dst)