当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy vander用法及代码示例


本文简要介绍 python 语言中 numpy.vander 的用法。

用法:

numpy.vander(x, N=None, increasing=False)

生成范德蒙德矩阵。

输出矩阵的列是输入向量的幂。权力的顺序由增加布尔参数。具体来说,当增加为假,则i-th 输出列是输入向量按元素求幂N - i - 1。这种每行都具有几何级数的矩阵以亚历山大-泰奥菲尔·范德蒙德 (Alexandre-Theophile Vandermonde) 的名字命名。

参数

x array_like

一维输入数组。

N 整数,可选

输出中的列数。如果N未指定,则返回方阵(N = len(x))。

increasing 布尔型,可选

列的权力顺序。如果为真,则权力从左到右增加,如果为假(默认),则相反。

返回

out ndarray

范德蒙矩阵。如果增加为 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]])

方 Vandermonde 矩阵的行列式是输入向量值之差的乘积:

>>> np.linalg.det(np.vander(x))
48.000000000000043 # may vary
>>> (5-3)*(5-2)*(5-1)*(3-2)*(3-1)*(2-1)
48

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.vander。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。