[Numpy-discussion] Can I fill an existing array from an iterator?

Ken Basye kbasye1@jhu....
Fri Feb 6 13:00:10 CST 2009


Hi Folks,
  I wonder if there's a way to fill an existing array from an iterator 
without creating a temporary array.  That is, I'm looking for something 
that has the effect of

  >>> target = np.array(xrange(9), dtype = float)
  >>> target[:] = np.fromiter(repeat(3.14159, 9), dtype=float)

without creating a second array object in the second line.  The closest 
I got was this:

  >>> target[:] = xrange(-9, 0)
  >>> target[:] = tuple(repeat(5.5, 9))

Note that xrange isn't really an iterator, and appears to be handled 
specially.  Emptying the iterator into a tuple works, but
I was hoping for something even more direct.  If this isn't possible, I 
wonder what people would think of adding an optional 'out' argument to 
the 'fromXXX' functions which behaved like the 'out' argument to sum() 
and other functions.

  Thanks,
     Ken


More information about the Numpy-discussion mailing list