[Numpy-discussion] Resize method
Christopher Barker
Chris.Barker@noaa....
Mon Nov 23 14:10:53 CST 2009
Colin J. Williams wrote:
> Access by the interpreter prevents array resizing.
yup -- resize is really fragile for that reason. It really should be
used quite sparingly.
Personally, I think it should probably only be used when wrapped with a
higher level layer.
I've been working on an extendable array class, I call an accumulator
(bad name...). The idea is that you can use it to accumulate values when
you don't know how big it's going to end up, rather than using a list
for this, which is the standard idiom.
In [2]: import accumulator
In [3]: a = accumulator.accumulator((1,2,3,4,))
In [4]: a
Out[4]: accumulator([1, 2, 3, 4])
In [5]: a.append(5)
In [6]: a
Out[6]: accumulator([1, 2, 3, 4, 5])
In [8]: a.extend((6,7,8,9))
In [9]: a
Out[9]: accumulator([1, 2, 3, 4, 5, 6, 7, 8, 9])
At the moment, it only support 1-d arrays, though I'd like to extend it
to n-d, probably only allowing growing on the first axis.
This has been discussed on this list a fair bit, with mixed reviews as
to whether there is any point. It's slower than lists in common usage,
but has other advantages -- I'd like to see a C version, but don't know
if I'll ever have the time for that.
I've enclosed to code for your viewing pleasure
-Chris
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker@noaa.gov
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Accumulator.zip
Type: application/zip
Size: 5184 bytes
Desc: not available
Url : http://mail.scipy.org/pipermail/numpy-discussion/attachments/20091123/bc77171e/attachment.zip
More information about the NumPy-Discussion
mailing list