Travis E. Oliphant wrote: > Duncan Smith wrote: > >> Hello, >> Since moving to numpy I've had a few problems with my existing >> code. It basically revolves around the numpy scalar types. e.g. >> > > You will probably get more help on the numpy discussion list: > > [EMAIL PROTECTED] > > > You are encountering problems because numpy scalar types don't raise > errors (unless you have set the appropriate hardware flag using > numpy.seterr). >
Aha! > You can get Python scalars out of NumPy arrays if you really want them > using (for example...) > > a.item(0,0) > > >> >> An additional problem involves classes that have e.g. __rmul__ methods >> defined and are sufficiently similar to numpy arrays that my classes' >> __rmul__ methods are not invoked when using numpy scalars. >> > > Could you please post an example showing the problem? > I'll try to post a minimal example tomorrow. But they are classes that have an ndarray as an attribute, and with __getitem__ and __setitem__ methods which simply call the corresponding array methods. Maybe that's enough to account for the behaviour? I'll check tomorrow. >> >> I might (I hope) be missing something obvious; but it seems like, to be >> safe, I'm going to have to do a lot of explicit conversions to Python >> types (or abandon catching zero division errors, and documenting some of >> my classes to highlight that whether scalar * a equals a * scalar >> depends on whether a.__rmul__ is called, which depends on the type of >> scalar). >> > > numpy scalars are try a lot more things before giving up on > multiplication and letting the other class have a stab at it. > > Post your problems to the numpy discussion list for better help and more > discussion. > Yes, I have done. But it's awaiting moderation; presumably because I posted using a different e-mail address than the one I registered with (I wasn't thinking). Thanks for the reply. Duncan -- http://mail.python.org/mailman/listinfo/python-list