numpy.ma.vander#
- ma.vander(x, n=None)[source]#
產生范德蒙矩陣。
輸出矩陣的列是輸入向量的冪次方。冪次方的順序由 increasing 布林參數決定。具體來說,當 increasing 為 False 時,第 i 列輸出是輸入向量的元素逐個取
N - i - 1
次方。這種每行都具有等比數列的矩陣以 Alexandre-Théophile Vandermonde 的名字命名。- 參數:
- xarray_like (類陣列)
一維輸入陣列。
- Nint, 選項性
輸出中的列數。如果未指定 N,則會傳回方形陣列 (
N = len(x)
)。- increasingbool, 選項性
列的冪次方順序。如果為 True,冪次方會從左到右遞增;如果為 False(預設值),則會反轉。
- 回傳值:
- outndarray
范德蒙矩陣。如果 increasing 為 False,則第一列為
x^(N-1)
,第二列為x^(N-2)
,依此類推。如果 increasing 為 True,則列為x^0, x^1, ..., x^(N-1)
。
註解
輸入陣列中的遮罩值會導致產生零的列。
範例
>>> import numpy as np >>> 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