On Fri, Feb 15, 2008 at 08:28:08AM -0500, Alexander Michael wrote: > On Fri, Feb 15, 2008 at 7:12 AM, Stefan van der Walt <[EMAIL PROTECTED]> > wrote: > > As far as I know, the reference count to the array is increased when > > you create a view, but the views themselves are not tracked anywhere. > > You can therefore say whether there are references around, but you > > cannot identify the Python objects. > > I would like to occasionally dynamically grow an array (i.e. add > length to existing dimensions) as I do not know th ultimately required > length beforehand, but I have a good guess so I won't be need to > reallocate that often if at all. The only way I know how to do this is > numpy is to create a new larger array with the new dimensions and copy > the existing data from the smaller array into it. Perhaps there is a > better way that doesn't invalidate views on the array? I want to make > sure that there are no outstanding references to the old array (i.e. > views on it, etc.) so that I can raise a helpful exception while > developing.
Numpy does complain if you attempt to resize an array with views on it: In [8]: x = np.array([1,2,3]) In [14]: y = x[::-1] In [18]: x.resize((4,)) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) /tmp/<ipython console> in <module>() ValueError: cannot resize an array that has been referenced or is referencing another array in this way. Use the resize function You can catch that exception and work from there. I hope that is what you had in mind? Regards Stéfan _______________________________________________ Numpy-discussion mailing list [email protected] http://projects.scipy.org/mailman/listinfo/numpy-discussion
