用NumPy查找矩阵或向量的准则
为了找到矩阵或向量规范,我们使用Python库Numpy的函数numpy.linalg.norm()。这个函数根据其参数值返回七个矩阵规范中的一个或无限的向量规范中的一个。
语法: numpy.linalg.norm(x, ord=None, axis=None)
参数:
x: input
ord:规范的顺序
axis: 无,返回矢量或矩阵规范,如果是一个整数,则指定X轴,矢量规范将沿着该轴计算。
示例 1:
# import library
import numpy as np
# initialize vector
vec = np.arange(10)
# compute norm of vector
vec_norm = np.linalg.norm(vec)
print("Vector norm:")
print(vec_norm)
输出:
Vector norm:
16.881943016134134
上述代码计算维度为(1, 10)的向量的向量准则
示例 2:
# import library
import numpy as np
# initialize matrix
mat = np.array([[ 1, 2, 3],
[4, 5, 6]])
# compute norm of matrix
mat_norm = np.linalg.norm(mat)
print("Matrix norm:")
print(mat_norm)
输出:
Matrix norm:
9.539392014169456
在这里,我们得到一个维度为(2, 3)的矩阵的矩阵准则
示例 3:
# import library
import numpy as np
mat = np.array([[ 1, 2, 3],
[4, 5, 6]])
# compute matrix num along axis
mat_norm = np.linalg.norm(mat, axis = 1)
print("Matrix norm along particular axis :")
print(mat_norm)
输出:
Matrix norm along particular axis :
[3.74165739 8.77496439]
这段代码生成了一个矩阵规范,输出也是一个形状为(1,2)的矩阵。
示例 4:
# import library
import numpy as np
# initialize vector
vec = np.arange(9)
# convert vector into matrix
mat = vec.reshape((3, 3))
# compute norm of vector
vec_norm = np.linalg.norm(vec)
print("Vector norm:")
print(vec_norm)
# computer norm of matrix
mat_norm = np.linalg.norm(mat)
print("Matrix norm:")
print(mat_norm)
输出:
Vector norm:
14.2828568570857
Matrix norm:
14.2828568570857
从上面的输出可以看出,如果我们将一个向量转换为一个矩阵,或者如果两者有相同的元素,那么它们的规范也将是相等的。