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

Alexander Griffing argriffi at ncsu.edu
Wed Apr 27 21:49:16 EDT 2016


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.
>
> 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



More information about the NumPy-Discussion mailing list