numpy.ma.vander #
- 嘛。vander ( x , n = None ) [来源] #
生成范德蒙矩阵。
输出矩阵的列是输入向量的幂。幂的顺序由递增布尔参数决定。具体来说,当增加为 False 时,第 i个输出列是输入向量按元素求 的 次方。这种每行都具有几何级数的矩阵以亚历山大-泰奥菲尔·范德蒙德 (Alexandre-Theophile Vandermonde) 的名字命名。
N - i - 1
- 参数:
- x类似数组
一维输入数组。
- N整数,可选
输出中的列数。如果未指定N,则返回方阵 ( )。
N = len(x)
- 增加布尔值,可选
列的权力顺序。如果为 True,则幂从左到右增加,如果为 False(默认值),则相反。
1.9.0 版本中的新增功能。
- 返回:
- 输出数组
范德蒙矩阵。如果增加为 False,则第一列为
x^(N-1)
,第二列x^(N-2)
依此类推。如果增加为 True,则列为。x^0, x^1, ..., x^(N-1)
笔记
输入数组中的屏蔽值会产生零行。
例子
>>> x = np.array([1, 2, 3, 5]) >>> N = 3 >>> np.vander(x, N) array([[ 1, 1, 1], [ 4, 2, 1], [ 9, 3, 1], [25, 5, 1]])
>>> np.column_stack([x**(N-1-i) for i in range(N)]) array([[ 1, 1, 1], [ 4, 2, 1], [ 9, 3, 1], [25, 5, 1]])
>>> x = np.array([1, 2, 3, 5]) >>> np.vander(x) array([[ 1, 1, 1, 1], [ 8, 4, 2, 1], [ 27, 9, 3, 1], [125, 25, 5, 1]]) >>> np.vander(x, increasing=True) array([[ 1, 1, 1, 1], [ 1, 2, 4, 8], [ 1, 3, 9, 27], [ 1, 5, 25, 125]])
范德蒙方阵的行列式是输入向量值之间的差值的乘积:
>>> np.linalg.det(np.vander(x)) 48.000000000000043 # may vary >>> (5-3)*(5-2)*(5-1)*(3-2)*(3-1)*(2-1) 48