On Jun 13, 6:15 pm, Thomas Jollans <tho...@jollans.com> wrote: > Hi, > > I'm writing some buffer-centric number-crunching routines in C for > Python code that uses array.array objects for storing/manipulating data. > I would like to: > > 1. allocate a buffer of a certain size > 2. fill it > 3. return it as an array. > > I can't see any obvious way to do this with the array module, but I was > hoping somebody here might be able to help. My best shot would be to: > > 1. create a bytearray with PyByteArray_FromStringAndSize(NULL, byte_len) > 2. fill its buffer > 3. initialize an array from the bytearray. > > The issue I have with this approach is that array will copy the data to > its own buffer. I'd much rather create an array of a certain size, get a > write buffer, and fill it directly -- is that possible? > > I expect that numpy allows this, but I don't really want to depend on > numpy, especially as they haven't released a py3k version yet. > > -- Thomas
You want Numpy... e.g. import numpy as np array = np.zeros(100, dtype=np.uint8) then either something like this to fill it for i in xrange(len(100)): array[i] = 2 or array = np.zeros(0) for i in xrange(len(100)): array = np.append(array, 2) Mart -- http://mail.python.org/mailman/listinfo/python-list