[Numpy-discussion] Pb with vectorizing
Pierre GM
pgmdevlist at mailcan.com
Fri Mar 31 15:37:03 CST 2006
Folks,
I'm trying to use `vectorize` on the following lambda function, taking a
scalar as input, and output a 10-char string
fnc = lambda x: datetime.date.fromordinal(x).strftime("%Y-%m-%d")
I can't find a way to get an actual 'S10' chararray as output. OIn top of
that, it seems that vectorize still uses the oldnumeric typecode: is this on
purpose (and then which one), or just because it has been updated yet ?
Here's what I tried so far.
Any idea/comment (even a 'that can't work, forget it) more than welcome, as
usual
Thx
P.
----------------------------------------------------------
x = array([719893,719894, 719895])
fnc(x[0])
>>> '1972-01-01'
fnc(x[:2])
>>> TypeError: only length-1 arrays can be converted to Python scalars
(OK, that wasn't suppose to work)
vectorize(fnc)(x[:2])
>>> array([, ], dtype='|S0')
(not quite)
vectorize(fnc,otypes="S")(x[:2])
>>> array([, ], dtype='|S0')
(ditto)
vectorize(fnc,otypes="|S10")(x[:2])
>>> ValueError: invalid typecode specified
asarray(vectorize(fnc)(newddatesordinal[:2]),dtype='|S10')
>>> array([Ø6z«ª*, Ø6z«ª*], dtype='|S10')
More information about the Numpy-discussion
mailing list