numpy.polynomial.polynomial.polyval#
- polynomial.polynomial.polyval(x, c, tensor=True)[source]#
在点 x 处计算多项式值。
如果 c 的长度为
n + 1
,则此函数返回以下值\[p(x) = c_0 + c_1 * x + ... + c_n * x^n\]参数 x 仅在它是元组或列表时才转换为数组,否则将被视为标量。在任何情况下,x 或其元素都必须支持自身之间的乘法和加法,以及与 c 的元素之间的乘法和加法。
如果 c 是一个一维数组,则
p(x)
将与 x 具有相同的形状。如果 c 是多维的,则结果的形状取决于 tensor 的值。如果 tensor 为 True,则形状将为 c.shape[1:] + x.shape。如果 tensor 为 False,则形状将为 c.shape[1:]。请注意,标量的形状为 (,)。系数中的尾随零将在计算中使用,因此如果效率是一个问题,应避免它们。
- 参数:
- x类似数组,兼容对象
如果 x 是列表或元组,它将被转换为 ndarray,否则将保持不变并被视为标量。在任何情况下,x 或其元素都必须支持自身之间的加法和乘法,以及与 c 的元素之间的加法和乘法。
- c类似数组
系数数组,按顺序排列,以便度数为 n 的项的系数包含在 c[n] 中。如果 c 是多维的,则剩余的索引枚举多个多项式。在二维情况下,可以认为系数存储在 c 的列中。
- tensor布尔值,可选
如果为 True,则系数数组的形状将在右侧扩展为 1,每个维度对应于 x 的一个维度。标量对于此操作的维度为 0。结果是,c 中的每个系数列都会针对 x 的每个元素进行计算。如果为 False,则 x 将广播到 c 的列上以进行计算。当 c 是多维时,此关键字很有用。默认值为 True。
1.7.0 版中的新增功能。
- 返回值:
- valuesndarray,兼容对象
返回数组的形状如上所述。
备注
计算使用霍纳规则。
示例
>>> import numpy as np >>> from numpy.polynomial.polynomial import polyval >>> polyval(1, [1,2,3]) 6.0 >>> a = np.arange(4).reshape(2,2) >>> a array([[0, 1], [2, 3]]) >>> polyval(a, [1, 2, 3]) array([[ 1., 6.], [17., 34.]]) >>> coef = np.arange(4).reshape(2, 2) # multidimensional coefficients >>> coef array([[0, 1], [2, 3]]) >>> polyval([1, 2], coef, tensor=True) array([[2., 4.], [4., 7.]]) >>> polyval([1, 2], coef, tensor=False) array([2., 7.])