📅  最后修改于: 2023-12-03 14:46:21.702000             🧑  作者: Mango
np.polyvander3d()
方法是用于生成 n 次三元多项式矩阵的方法,其中每行是形如 [x^i*y^j*z^k,…]
的一组基.
numpy.polyvander3d(x, y, z, deg)
x, y, z: 分别是三个一维数组,表示三个变量的值。
deg: 单个整数或长度为3的数组。如果为单个整数,则生成所有度数之和为i的组合项。如果为长度为3的数组,每个值提供与其对应的变量的度数。
np.polyvander3d()
方法返回的值是一个二维数组,其形状为 (N, l)
,其中N是数组x、y、z中元素的总数,l是多项式系数的数量。
import numpy as np
x = np.array([1, 2, 3])
y = np.array([0, 1, 2])
z = np.array([0, 1])
out = np.polyvander3d(x, y, z, deg=2)
print(out)
输出结果为:
array([[ 1., 0., 0., 0., 0., 0.],
[ 1., 0., 0., 2., 0., 0.],
[ 1., 0., 0., 4., 0., 0.],
[ 0., 1., 0., 0., 0., 0.],
[ 0., 1., 0., 2., 0., 0.],
[ 0., 1., 0., 4., 0., 0.],
[ 1., 2., 0., 0., 0., 0.],
[ 1., 2., 0., 2., 0., 0.],
[ 1., 2., 0., 4., 0., 0.],
[ 0., 0., 1., 0., 0., 0.],
[ 0., 0., 1., 2., 0., 0.],
[ 0., 0., 1., 4., 0., 0.],
[ 0., 1., 1., 0., 0., 0.],
[ 0., 1., 1., 2., 0., 0.],
[ 0., 1., 1., 4., 0., 0.],
[ 1., 2., 1., 0., 0., 0.],
[ 1., 2., 1., 2., 0., 0.],
[ 1., 2., 1., 4., 0., 0.]])
代码解释:
在这个示例中,我们传入了 x
,y
和 z
三个不同的数组, deg = 2
代表了多项式的阶数。返回的值为一个二维矩阵,其中每一行都是一个多项式基.
np.polyvander3d()
方法是一个非常有用且容易实现的函数,它允许我们生成高阶多项式基。 在深度学习等领域中,生成这种类型的矩阵通常是必要的。