當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python numpy ma.vander用法及代碼示例


本文簡要介紹 python 語言中 numpy.ma.vander 的用法。

用法:

ma.vander(x, n=None)

生成範德蒙德矩陣。

輸出矩陣的列是輸入向量的冪。權力的順序由增加布爾參數。具體來說,當增加為假,則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.ma.vander。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。