numpy.lib.polynomial.polyval允许您使用另一个多项式来评估多项式:

numpy.polyval(poly1d([1, 2, 3]), 2)
Out[832]: 11

numpy.polyval(poly1d([1, 1]), poly1d([1, 1, 1]))
Out[820]: poly1d([ 1.,  1.,  2.])


例如。你如何使用numpy.polynomial.polynomial.polyval做同样的事情?

numpy.polynomial.polynomial.polyval(2, [3, 2, 1])
Out[833]: 11.0

numpy.polynomial.polynomial.polyval(Polynomial([1, 1, 1]), Polynomial([1, 1]))
Out[834]: Polynomial([ 1.,  1.], [-1.,  1.], [-1.,  1.])

最佳答案

最简单的方法是使用Polynomial类。

In [1]: from numpy.polynomial import Polynomial as P

In [2]: p1 = P([1,1])

In [3]: p2 = P([1,1,1])

In [4]: p2(p1)
Out[4]: Polynomial([ 3.,  3.,  1.], [-1.,  1.], [-1.,  1.])

In [5]: p1(p2)
Out[5]: Polynomial([ 2.,  1.,  1.], [-1.,  1.], [-1.,  1.])


如果坚持使用多项式,则既需要系数,又需要多项式作为x。

In [12]: import numpy.polynomial.polynomial as poly

In [13]: poly.polyval(p1, [1,1,1])
Out[13]: Polynomial([ 3.,  3.,  1.], [-1.,  1.], [-1.,  1.])

In [14]: poly.polyval(p2, [1,1])
Out[14]: Polynomial([ 2.,  1.,  1.], [-1.,  1.], [-1.,  1.])

关于python - 在其他多项式中评估numpy多项式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24771027/

10-14 12:11