[SciPy-user] SciPy-user Digest, Vol 29, Issue 11
brendansimons at yahoo.ca
Fri Jan 6 07:22:48 CST 2006
On 6-Jan-06, at 3:01 AM, Travis wrote:
> I can't think of a good reason except that's the way Numeric did it.
> I don't think a change in this behavior would hurt anybody.
> But let's be clear. A 0d array and a size-0 array are two different
> A 0d array actually has room for one element while a size-0 array has
> one of the dimensions as 0. I just checked, and numarray returns a
> size-0 array.
Right, my mistake. I meant a size 0 array.
> I can change this.
Great! That would be very helpful to me.
> But, note also that if another object is referencing a you can't do a
> resize like this:
> a = numpy.ones(5)
> b = a
> a.resize(...) will give an error because the object a has more
> than one
> reference to it.
Oh, I hadn't realized this. I can work around that limitation, but
it might not be apparent to future users.
I can't comment about the relative merits of malloc approaches, but I
certainly don't want to sacrifice the performance of numpy for this
> The point of resize is to be able to modify the size of the memory
> pointer for the array. You can't do this is another array is using
> same memory pointer (which it might be if this array has more than one
So the memory address belongs to the reference, and not the array
itself? *Looks embarassed for not understanding better how things work*
> If you really need the numarray ability to swap out the memory address
> of the array for another one, then you might as well use the resize
> a = resize(a,(0,)) # which we will have to fix to make work
> right ;-)
The global resize function will change the memory address of all
references to the array then? If so, that sounds like an adequate
Brendan Simons, Project Engineer
Stern Laboratories, Hamilton Ontario
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the SciPy-user