这两周学习numpy,确实感觉在一些数学问题上很方便.
案例一,求解方阵的特征值和特征向量.
求解代码如下:
import numpy as np
array = np.array([[1, 5, 9], [3, 2, 8], [5, 7, 4]])
r1, r2 = np.linalg.eig(array)
# 特征值
print(r1)
# 特征向量
print(r2)
运行结果:
求解矩阵行列式
"""
numpy 计算行列式子
"""
import numpy as np
# a = [[1, 5, 9],
# [3, 2, 8],
# [5, 7, 4]]
a = [[1, 5],
[2, 4]]
a = np.array(a)
# 行列式
det = np.linalg.det(a)
print(det)
程序输出结果:
补充一下二维和三维的行列式值。
求解线性方程组
求解代码入下:
import numpy as np
A = np.array([[1, 1], [2000, 1500]])
B = np.array([10, 18000])
result = np.linalg.solve(A, B)
print(result)
运行结果:
就是方程组的解为
求向量的长度
比如求向量 [3,4]的长度
import numpy as np
np.linalg.norm([3, 4])
输出结果就是 5.0.
奇异值分解
对下列矩阵进行奇异值分解
代码如下:
import numpy as np
A = np.array([[5, 6, 9], [3, 8, 4]])
p, sigma, q = np.linalg.svd(A)
print(p)
print(sigma)
print(q)
运行结果:
这里呢, A等于三个矩阵的内积
加入A是一个 m × n 的矩阵,那么p, sigma, q的维度分别是
m × m, m × n, n × n 。
且
角度和弧度转换
import numpy as np
# 结果90
np.rad2deg(np.pi/2)
# 结果1.5707963267948966
np.deg2rad(90)