均分函数 numpy.arange() 和 numpy.linspace()

numpy.arange([start, ]stop, [step, ])

该函数返回的是一个均匀分布的数组

step一般为整数

import numpy as np

>>> np.arange(5)
[0 1 2 3 4]    # 是数组,不是list
>>> np.arange(2, 7)
[2 3 4 5 6]
>>> np.arange(3, 7, 2)
[3 5]

如果需要步长不为整数的情况,可以使用linspace。

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False)

>>> np.linspace(2.0, 3.0, num=5)
[ 2.  2.25  2.5  2.75  3.  ]
>>> np.linspace(2.0, 3.0, num=5, endpoint=False)
[ 2.  2.2  2.4  2.6  2.8]

矩阵(matrix)或向量(vector)范数 numpy.linalg.norm()

默认是计算第二范式

from numpy import linalg as la
>>> a = np.arange(9) - 4
>>> a
array([-4, -3, -2, -1,  0,  1,  2,  3,  4])
>>> b = a.reshape((3, 3))
>>> b
array([[-4, -3, -2],
       [-1,  0,  1],
       [ 2,  3,  4]])

a是向量 b是矩阵

向量范数

1-范数:即向量元素绝对值之和
>>> LA.norm(a, 1)
20.0

2-范数:即向量元素绝对值的平方和再开方
>>> LA.norm(a)
7.745966692414834
>>> LA.norm(a, 2)
7.745966692414834-范数:即所有向量元素绝对值中的最大值
>>> LA.norm(a, np.inf)
4.0

--范数:即所有向量元素绝对值中的最小值
>>> LA.norm(a, -np.inf)
0.0

p-范数:即向量元素绝对值的p次方和的1/p次幂
>>> LA.norm(a, 3)
5.8480354764257312

矩阵范数

1-范数:列和范数,即所有矩阵列向量绝对值之和的最大值
>>> LA.norm(b, 1)
7.0

2-范数:谱范数,即A'A矩阵的最大特征值的开平方
>>> LA.norm(b, 2)
7.3484692283495345-范数:行和范数,即所有矩阵行向量绝对值之和的最大值
>>> LA.norm(b, np.inf)
9.0

F-范数:Frobenius范数,即矩阵元素绝对值的平方和再开平方
>>> LA.norm(b)
7.745966692414834
>>> LA.norm(b, 'fro')
7.745966692414834

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐