[Numpy-discussion] Is this a known error in Ipython with numpy?

Nathan Goldbaum nathan12343 at gmail.com
Wed Apr 27 21:54:37 EDT 2016


On Wed, Apr 27, 2016 at 8:49 PM, Alexander Griffing <argriffi at ncsu.edu>
wrote:

> On Wed, Apr 27, 2016 at 7:48 PM, Elliot Hallmark <Permafacture at gmail.com>
> wrote:
> > Hello,
> >
> > I haven't worked hard yet to create a minimal runnable (reproduce-able)
> > example but I wanted to check if this sounds familiar to anyone.
> >
> > I have a pretty involved program that resizes arrays in place with
> > arr.resize.  When I run it with python it completes and gives the
> expected
> > result.  When I run it in Ipython, I get the following error:
> >
> > ```
> >     ---> 43         self._buffer.resize((count,)+self._dim)
> >          44
> >          45
> >
> >     ValueError: cannot resize an array that references or is referenced
> >     by another array in this way.  Use the resize function
> > ```
> >
> > It was consistently doing this on the same array, after resizing two
> others
> > before hand, even after rebooting.  But trying to track it down it goes
> away
> > even if I undo everything I did to try and track it down.
>

You might find the %xdel magic to be useful:

In [1]: %xdel?
Docstring:
Delete a variable, trying to clear it from anywhere that
IPython's machinery has references to it. By default, this uses
the identity of the named object in the user namespace to remove
references held under other names. The object is also removed
from the output history.

Options
  -n : Delete the specified name from all namespaces, without
  checking their identity.



> >
> > Does this sound familiar?
> >
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion at scipy.org
> > https://mail.scipy.org/mailman/listinfo/numpy-discussion
> >
>
> I'd guess the issue is that your environment (IPython or IDLE or
> whatever) is keeping a reference to your array, for example so that
> you can refer to earlier outputs using the underscore _.  Here's how I
> was able to reproduce the problem:
>
> This is OK:
>
> >>> import numpy as np
> >>> a = np.arange(10)
> >>> a.resize(3)
> >>> a
> array([0, 1, 2])
>
> This gives an error:
>
> >>> import numpy as np
> >>> a = np.arange(10)
> >>> a
> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
> >>> a.resize(3)
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> ValueError: cannot resize an array that references or is referenced
> by another array in this way.  Use the resize function
>
> Cheers,
> Alex
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> https://mail.scipy.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20160427/37d0931c/attachment.html>


More information about the NumPy-Discussion mailing list