Python3-numpy.linalg.norm

Python3-numpy.linalg.norm

0x01 摘要

numpy.linalg.norm作用是求向量的范数。下面介绍下他的主要参数。

0x02 参数

  • x
    类数组的对象。如果没有指定axis,就只能是1或2维
  • ord
    为设置具体范数值(默认是2范数)
    • ord=2, 默认,二范数 = 向量中每个维度值的平方的和再开方
    • ord=1,一范数 = 向量中每个维度值的绝对值的和
    • ord=np.inf, 无穷范数 = 向量中每个维度值的绝对值的中的最大值
    • ord=-np.inf, 无穷范数 = 向量中每个维度值的绝对值的中的最小值
  • axis
    向量的计算方向。
    • 0 按列向量计算范数
    • 1 按行向量计算范数
    • 不配置时按整个矩阵计算范数
  • keepdims
    bool类型,默认为false。设置是否保持维度不变

0x03 测试代码

python代码如下:

import numpy as np
x=np.array([[0, 3, 4], [2, 6, 4]])

# 按行求行向量二范数
# 向量的第二范数为传统意义上的向量长度
y=np.linalg.norm(x, axis=1, keepdims=True)
print("y=")
print(y)

# 求原矩阵的行向量的单位向量
z=x/y
print("z=")
print(z)

# 上式等价于 按行求向量的平方和 然后 开方
y2=np.sum(x**2, axis=1, keepdims=True)**0.5
print("y2=")
print(y2)

# 不保持维度不变
y3=np.sum(x**2, axis=1, keepdims=False)**0.5
print("y3=")
print(y3)

# 默认keepdims为False
y4=np.sum(x**2, axis=1)**0.5
print("y4=")
print(y4)

# 按列计算范数
y5=np.sum(x**2, axis=0, keepdims=False)**0.5
print("y5=")
print(y5)

# 一范数
y6=np.linalg.norm(x, ord = 1,axis=1, keepdims=True)
print("y6=")
print(y6)

# 正无穷范数
y6=np.linalg.norm(x, ord = np.inf,axis=1, keepdims=True)
print("y6=")
print(y6)

# 负无穷范数
y7=np.linalg.norm(x, ord = -np.inf,axis=1, keepdims=True)
print("y7=")
print(y7)

# 不配置axis,按矩阵求范数
y8=np.linalg.norm(x, ord = 1, keepdims=True)
print("y8=")
print(y8)

运行结果如下:

y=
[[5.        ]
 [7.48331477]]
z=
[[0.         0.6        0.8       ]
 [0.26726124 0.80178373 0.53452248]]
y2=
[[5.        ]
 [7.48331477]]
y3=
[5.         7.48331477]
y4=
[5.         7.48331477]
y5=
[2.         6.70820393 5.65685425]
y6=
[[ 7.]
 [12.]]
y6=
[[4.]
 [6.]]
y7=
[[0.]
 [2.]]
y8=
[[9.]]

0xFE 附录

求取向量二范数,并求取单位向量(行向量计算),如下图:
行向量二范数

0xFF 参考文档

numpy.linalg.norm
python 库 Numpy 中如何求取向量范数 np.linalg.norm

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值