numpy中的norm()函数求范数实例

作者:若水cjj 时间:2022-01-02 01:36:45 

numpy norm()函数求范数

函数:

norm(x, ord = None, axis = None, keepdims = False)

ord表示求什么类型的范数

numpy中的norm()函数求范数实例

举例说明

import numpy as np

x = [1,2,3,4]
x1 = np.linalg.norm(x=x, ord=1)
x2 = np.linalg.norm(x=x, ord=2)
x3 = np.linalg.norm(x=x, ord=np.inf)
print(x1)
print(x2)
print(x3)

运行结果:

numpy中的norm()函数求范数实例

axis=0表示对矩阵的每一列求范数,axis=1表示对矩阵的每一行求范数, keeptdims=True表示结果保留二维特性,keepdims=False表示结果不保留二维特性

import numpy as np

x = np.array([[0, 1, 2],
             [3, 4, 5]])
x1 = np.linalg.norm(x=x, ord=1, axis=0, keepdims=True)
x2 = np.linalg.norm(x=x, ord=1, axis=1, keepdims=True)
x3 = np.linalg.norm(x=x, ord=1, axis=0, keepdims=False)
x4 = np.linalg.norm(x=x, ord=1, axis=1, keepdims=False)

print(x1)
print(x2)
print(x3)
print(x4)

运行结果:

numpy中的norm()函数求范数实例

numpy求解范数(numpy.linalg.norm)以及各阶范数详解

numpy.linalg.norm

语法

numpy.linalg.norm(x,ord=None,axis=None,keepdims=False)

Parameters

x: array_like

Input array. If axis is None, x must be 1-D or 2-D, unless ord is None. If both axis and ord are None, the 2-norm of x.ravel will be returned.

X是输入的array, array的情况必须是以下三种情况之一:

  • axis未指定,ord指定。此时x必须是一维或二维数组

  • axis指定,x任意

  • axis未指定,ord未指定,此时x任意,返回值为x被展平后的一维向量x.ravel的二范数。

ord:{non-zero int, inf, -inf, ‘fro’, ‘nuc’}, optional

Order of the norm (see table under Notes). inf means numpy’s inf object. The default is None.

范数的阶数,可以不指定。默认为None。inf代表无穷大,-inf为无穷小。

可选的阶数见下图:

numpy中的norm()函数求范数实例

axis:{None, int, 2-tuple of ints},optional

If axis is an integer, it specifies the axis of x along which to compute the vector norms. If axis is a 2-tuple, it specifies the axes that hold 2-D matrices, and the matrix norms of these matrices are computed. If axis is None then either a vector norm (when x is 1-D) or a matrix norm (when x is 2-D) is returned. The default is None.

如果axis是整数,指定了一个维度,在该维度上按照向量进行范数计算。如果是一个二元整数组,指定了两个维度,在指定的这两个维度上可以构成矩阵。

对这些矩阵进行计算。如果没有指定axis,那么对于一维输入返回其向量形式的范数计算值,对于二维输入返回其矩阵形式的范数。默认值为None

keepdims: bool, optional

If this is set to True, the axes which are normed over are left in the result as dimensions with size one. With this option the result will broadcast correctly against the original x.

如果keepdims=True,被指定计算范数的维度将在返回结果中保留,其size为1。计算结果会在该维度上进行broadcast

各范数详析

NOTE: 对于ord<1的各个范数,结果在严格意义不等于数学意义上的范数。但在数值计算层面仍然有效。

numpy中的norm()函数求范数实例

默认情况

当不指定ord时,即ord = None,对于矩阵,计算其Frobenius norm,对于向量,计算其2-norm

Frobenius范数

ord = 'fro'

其公式为:

numpy中的norm()函数求范数实例

F范数只对矩阵存在。其值为对所有元素的绝对值的平方求和后开平方。

Nuclear范数(核范数)

  • ord = 'nuc'

  • 只对矩阵存在,矩阵的核范数等于其所有奇异值的和。

无穷大范数

  • 对于矩阵:max(sum(abs(x), axis=1)) ,每一行最终得到一个数,返回最大的数。

  • 对于向量:max(abs(x)

无穷小范数

  • 对于矩阵: min(sum(abs(x),axis=1)),每一行得到一个数,返回最小的数。

  • 对于向量: min(abs(x))

0 范数

  • 对于矩阵:不存在

  • 对于向量:sum(x!=0) 所有非零元素的和

1 范数

  • 对于矩阵:max(sum(abs(x)),axis=0,每一列得到一个数,返回最大值。

  • 对于向量:sum(abs(x)**ord)**(1./ord)

-1 范数

  • 对于矩阵:min(sum(abs(x)),axis=0,每一列得到一个数,返回最小值。

  • 对于向量:sum(abs(x)**ord)**(1./ord)

2 范数

  • 对于矩阵:最大的奇异值

  • 对于向量:sum(abs(x)**ord)**(1./ord)

-2范数

  • 对于矩阵:最小的奇异值

  • 对于向量:sum(abs(x)**ord)**(1./ord)

其余int值对应的范数

  • 对于矩阵: Undefined

  • 对于向量:sum(abs(x)**ord)**(1./ord)

来源:https://blog.csdn.net/cjhxydream/article/details/108192497

标签:numpy,norm,求范数
0
投稿

猜你喜欢

  • 使用python读取txt文件的内容,并删除重复的行数方法

    2022-05-08 19:41:56
  • 学习ASP的理由 分析小结

    2011-02-26 10:54:00
  • 在ASP.NET 2.0中操作数据之五十四:添加新记录时包含一个文件上传选项

    2024-03-16 02:11:24
  • vuex实现购物车功能

    2024-05-08 10:43:27
  • python原始套接字编程示例分享

    2021-10-09 19:00:07
  • PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程

    2023-11-19 20:31:59
  • python+django+rest框架配置创建方法

    2021-10-07 02:28:52
  • Oracle中sql语句如何执行日志查询

    2024-01-23 21:43:26
  • 详解Python 中的容器 collections

    2021-09-12 07:11:38
  • MySQL 的启动和连接方式实例分析

    2024-01-21 09:06:03
  • 将ACCESS数据库迁移到SQLSERVER数据库两种方法(图文详解)

    2024-01-27 23:20:13
  • Python爬虫爬取百度搜索内容代码实例

    2022-06-23 02:21:11
  • MySQL截取和拆分字符串函数用法示例

    2024-01-21 14:24:55
  • Pytest fixture及conftest相关详解

    2021-06-23 11:37:31
  • 如何创建 Firefox 的 Jetpack 扩展

    2009-10-13 20:55:00
  • 基于Opencv图像识别实现答题卡识别示例详解

    2023-05-18 20:32:50
  • python 自动去除空行的实例

    2021-04-12 08:46:04
  • SQL Server中的集合运算: UNION, EXCEPT和INTERSECT示例代码详解

    2024-01-28 14:49:33
  • 在 TypeScript 中使用泛型的方法

    2023-08-23 21:55:00
  • python中xlwt模块的具体用法

    2023-11-08 07:10:15
  • asp之家 网络编程 m.aspxhome.com