日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

Python中np.linalg.norm()用法實例總結(jié)_python

作者:小k同學! ? 更新時間: 2022-09-18 編程語言

前言

np.linalg.norm()用于求范數(shù),linalg本意為linear(線性) + algebra(代數(shù)),norm則表示范數(shù)。

用法

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

1.x: 表示矩陣(一維數(shù)據(jù)也是可以的~)

2.ord: 表示范數(shù)類型

向量的范數(shù)

矩陣的向量

  • ord=1:表示求列和的最大值
  • ord=2:|λE-ATA|=0,求特征值,然后求最大特征值得算術(shù)平方根
  • ord=∞:表示求行和的最大值
  • ord=None:表示求整體的矩陣元素平方和,再開根號

3.axis:

參數(shù) 含義
0 表示按列向量來進行處理,求多個列向量的范數(shù)
1 表示按行向量來進行處理,求多個行向量的范數(shù)
None 表示整個矩陣的范數(shù)

4.keepdims:表示是否保持矩陣的二位特性,True表示保持,F(xiàn)alse表示不保持,默認為False

例子

1.默認狀態(tài)下

import numpy as np
X = [[1, 2, 3], [4, 5, 6]]
print(np.linalg.norm(X))

Result:

2.改變axis

import numpy as np
X = [[1, 2, 3], [4, 5, 6]]
print(np.linalg.norm(X, axis=1))
import numpy as np
X = [[1, 2, 3], [4, 5, 6]]
print(np.linalg.norm(X, axis=0))

3.改變ord

import numpy as np
X = [[1, 2, 3], [4, 5, 6]]
print(np.linalg.norm(X, ord=1))
import numpy as np
X = [[1, 2, 3], [4, 5, 6]]
print(np.linalg.norm(X, ord=2))

4.改變keepdims

import numpy as np
X = [[1, 2, 3], [4, 5, 6]]
print(np.linalg.norm(X, axis=0, keepdims=True))
import numpy as np
X = [[1, 2, 3], [4, 5, 6]]
print(np.linalg.norm(X, axis=0))

注意:嚴格來說,當 ord <= 0 時,不符合數(shù)學上的范數(shù)公式,但它仍然適用于各種數(shù)值目的。

import numpy as np
a = np.arange(12)
print(a)
b = a.reshape((3, 4))
print(b)
print(np.linalg.norm(a))
print(np.linalg.norm(b))
print(np.linalg.norm(b, 'fro'))
print(np.linalg.norm(b, 'nuc'))

print(np.linalg.norm(a, np.inf))
print(np.linalg.norm(a, -np.inf))
print(np.linalg.norm(a, 1))

print(np.linalg.norm(b, np.inf, axis=1))
print(np.linalg.norm(b, -np.inf, axis=0))
print(np.linalg.norm(b, 1))

[ 0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 10 11]
[[ 0 ?1 ?2 ?3]
?[ 4 ?5 ?6 ?7]
?[ 8 ?9 10 11]]
22.4944437584
22.4944437584
22.4944437584
24.3646384993
11.0
0.0
66.0
[ ?3. ? 7. ?11.]
[ 0. ?1. ?2. ?3.]
21.0

總結(jié)

原文鏈接:https://blog.csdn.net/silent1cat/article/details/120811844

欄目分類
最近更新