Python——np.linalg.norm求三种范数的方法(超详细附代码与注解)

开始之前

在处理机器学习问题中,我们常常会碰到范数,这里我将通过code给大家讲解一下范数。
范式代码:np.linalg.norm(x, ord=None, axis=None)
其中:
(1)linalg=linear(线性)+algebra(代数),norm表示范数
(2)x代表矩阵ord为范数类型

参数范数类型
ord=2或None二范数
ord=1一范数
ord=np.inf无穷范数

当ord=2表示求特征值,然后求最大特征值的算术平方根,当ord=1表示求列和的最大值,当ord=∞表示求行和的最大值。
【注】严格来讲,L0不属于范数,其表示向量中所有非零元素的个数,此处不予讲解。
(3)axis为处理类型:当axis=1时表示按行向量处理,求多个行向量的范数。当axis=0时表示按列向量处理,求多个列向量的范数。当axis=None表示矩阵范数

前提准备

Jupyter notebook 或 Pycharm
火狐浏览器或谷歌浏览器
win7或win10电脑一台

代码如下:

import numpy as np

A = np.array([[3,-4],[-6,5]])
print(A)
ret_all = np.linalg.norm(A,ord=None)
print(ret_all)                                 #ret_all返回的是2范数(平方和开根号)的值
ret_row = np.linalg.norm(A,ord=None,axis=1)
print(ret_row)	                              #ret_row返回的是逐行2范数(平方和开根号)的值
ret_colume = np.linalg.norm(A,ord=None,axis=0)
print(ret_colume)                             #ret_row返回的是逐列2范数(平方和开根号)的值
ret_inf_max = np.linalg.norm(A,ord=np.Inf)
print(ret_inf_max)                           #ret_inf_max返回的无穷范数(元素是逐行中元素绝对值的和最大)
ret_inf_max_row = np.linalg.norm(A,ord=np.Inf,axis=1)
print(ret_inf_max_row)						 #ret_inf_max_row返回的是无穷范数每行元素的绝对值的最大值
ret_inf_max_colume = np.linalg.norm(A,ord=np.Inf,axis=0)
print(ret_inf_max_colume)					 #ret_inf_max_row返回的是无穷范数每列元素的绝对值的最大值
ret_inf_min = np.linalg.norm(A,ord=-np.Inf)
print(ret_inf_min)							#ret_inf_min返回的无穷范数(元素是逐行中元素绝对值最小的值)
B = np.array([[100,-4],[-6,5]])
print(B)
ret_one = np.linalg.norm(B,ord=1)
print(ret_one)                              #ret_one返回的是求列的元素绝对值和的最大值
ret_one_row = np.linalg.norm(B,ord=1,axis=1)
print(ret_one_row)							#ret_one_row返回的是逐行求行的元素绝对值和
ret_one_colume = np.linalg.norm(B,ord=1,axis=0)
print(ret_one_colume)						#ret_one_row返回的是逐列求列的元素绝对值和

效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值