[Numpy-discussion] ownership of numpy arrays

josh kantor setthiry at hotmail.com
Wed Jan 17 05:54:27 EST 2007

I am working on a project where I am doing some interfacing with numpy 
arrays at a C level.

One thing that I want to do (using pyrex) is to call numpy functions, then 
directly access the underlying double * array of the resulting ndarray and 
operate on it in C/pyrex (I don't want to copy it). I want to ensure that 
the underlying double * wont be deallocated until I'm ready. I was going to 
take the resulting ndarray and set the ownership bit of the result to 0 and 
then I would be responsible for deallocating the memory when I was ready.

Contrary to what I expected I noticed that it seems all numpy functions, for 
example numpy.linalg.pinv as well as numpy.linalg.eig return matrices that 
don't own their data.

(If m is a numpy array)



shows that n does not own its data.

So I can't take their underlying data * with any certaintly that it won't be 
deallocated before I'm ready. If n doesn't own its data, who does.  Is there 
a safe way to do what I want?


The MSN Entertainment Guide to Golden Globes is here.  Get all the scoop. 

More information about the NumPy-Discussion mailing list