[Numpy-discussion] Second try: possible bug in assignment to complex array

Mark Bakker markbak at gmail.com
Sat Aug 11 07:16:40 EDT 2012


Shall I file a bug report? Or is this fairly easy to fix?
Mark


>
> On Fri, Aug 10, 2012 at 11:41 AM, <josef.pktd at gmail.com> wrote:
>
> >
> >
> > On Fri, Aug 10, 2012 at 10:00 AM, Travis Oliphant <travis at continuum.io
> >wrote:
> >
> >>
> >> On Aug 10, 2012, at 5:37 AM, Paul Anton Letnes wrote:
> >>
> >> >
> >> >
> >> > On 10. aug. 2012, at 09:54, Mark Bakker wrote:
> >> >
> >> >> I am giving this a second try. Can anybody help me out?
> >> >>
> >> >> I think there is a problem with assigning a 1D complex array of
> length
> >> one
> >> >> to a position in another complex array.
> >> >>
> >> >> Example:
> >> >>
> >> >> a = ones(1,'D')
> >> >> b = ones(1,'D')
> >> >> a[0] = b
> >> >>
> >>
> ---------------------------------------------------------------------------
> >> >> TypeError                                 Traceback (most recent call
> >> last)
> >> >> <ipython-input-37-0c4fc6d780e3> in <module>()
> >> >> ----> 1 a[0] = b
> >> >>
> >> >> TypeError: can't convert complex to float
> >> >>
> >> >> This works correctly when a and b are real arrays:
> >> >>
> >> >> a = ones(1)
> >> >> b = ones(1)
> >> >> a[0] = b
> >> >>
> >> >> Bug or feature?
> >> >
> >> > The exact same thing happens on OS X 10.7.4, python 2.7.3, numpy
> 1.6.1.
> >> >
> >> > Looks like a bug to me - or at least very surprising behavior.
> >>
> >> This is definitely an inconsistency.    The error seems more correct
> >> (though the error message needs improvement).
> >>
> >> Can someone try this on NumPy 1.5 and see if this inconsistency existed
> >> there as well.
> >>
> >
> > >>> np.__version__
> > '1.5.1'
> >
> > >>> a = np.ones(1,'D')
> > >>> b = np.ones(1,'D')
> > >>> a[0] = b
> > Traceback (most recent call last):
> >   File "<stdin>", line 1, in <module>
> >
> > TypeError: can't convert complex to float
> > >>> a = np.ones(1)
> > >>> b = np.ones(1)
> > >>> a[0] = b
> >
>
> and
>
> >>> a = np.ones(1,'D')
> >>> b = 2*np.ones(1)
> >>> a[0] = b
> >>> a
> array([ 2.+0.j])
> >>> c = 3*np.ones(1, int)
> >>> a[0] = c
> >>> a
> array([ 3.+0.j])
>
>
>
> >
> > Josef
> >
> >
> >> Thanks,
> >>
> >> -Travis
> >>
> >> >
> >> > Paul
> >> > _______________________________________________
> >> > NumPy-Discussion mailing list
> >> > NumPy-Discussion at scipy.org
> >> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
> >>
> >> _______________________________________________
> >> NumPy-Discussion mailing list
> >> NumPy-Discussion at scipy.org
> >> http://mail.scipy.org/mailman/listinfo/numpy-discussion
> >>
> >
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:
> http://mail.scipy.org/pipermail/numpy-discussion/attachments/20120810/05588327/attachment.html
>
> ------------------------------
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
> End of NumPy-Discussion Digest, Vol 71, Issue 18
> ************************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20120811/8c44d069/attachment.html>


More information about the NumPy-Discussion mailing list