📜  Python| Numpy np.polyvander3d() 方法(1)

📅  最后修改于: 2023-12-03 14:46:21.702000             🧑  作者: Mango

Python | Numpy np.polyvander3d() 方法

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.]])

代码解释:

在这个示例中,我们传入了 xyz 三个不同的数组, deg = 2 代表了多项式的阶数。返回的值为一个二维矩阵,其中每一行都是一个多项式基.

总结

np.polyvander3d() 方法是一个非常有用且容易实现的函数,它允许我们生成高阶多项式基。 在深度学习等领域中,生成这种类型的矩阵通常是必要的。