[Numpy-discussion] Unpleasant behavior with poly1d and numpy scalar multiplication

Charles R Harris charlesr.harris at gmail.com
Sat Feb 13 12:24:40 EST 2010


On Sat, Feb 13, 2010 at 10:04 AM, Fernando Perez <fperez.net at gmail.com>wrote:

> On Sat, Feb 13, 2010 at 10:34 AM, Charles R Harris
> <charlesr.harris at gmail.com> wrote:
> > The new polynomials don't have that problem.
> >
> > In [1]: from numpy.polynomial import Polynomial as Poly
> >
> > In [2]: p = Poly([1,2])
>
> Aha, great!  Many thanks, I can tell my students this, and just show
> them the caveat of calling float(x) on any scalar they want to use
> with the 'old' ones for now.
>
> I remember being excited about your work on the new Polys, but since
> I'm teaching with stock 1.3,  I hadn't found them recently and just
> forgot about them.  Excellent.
>
> One minor suggestion:  I think it would be useful to have the new
> polys have some form of pretty-printing like the old ones.  It is
> actually useful when working, to verify what one has at hand, to see
> an expanded printout like the old ones do:
>
>
I thought about that, but decided it was best left to a derived class, say
PrettyPoly ;) Overriding __repr__ and __str__ is an example where
inheritance makes sense.


> In [26]: p_old = numpy.poly1d([3, 2, 1])
>
> In [27]: p_old
> Out[27]: poly1d([3, 2, 1])
>
> In [28]: print(p_old)
>   2
> 3 x + 2 x + 1
>
> Just yesterday I was validating some code against a symbolic
> construction with sympy, and it was handy to pretty-print them; I also
> think it makes them much easier to grasp for students new to the
> tools.
>
> In any case, thanks both for the tip and especially the code contribution!
>
> Cheers,
>
>
Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20100213/96f45bd3/attachment.html>


More information about the NumPy-Discussion mailing list