[Numpy-discussion] query to array
tom.denniston at alum.dartmouth.org
Wed Jan 31 18:28:27 EST 2007
Ok, I don't have the pyodbc so I can't test this example but it would
look something like this assuming the date was a 10 char string (numpy
doesn't support mx.DateTimes natively, much to my chagrin) and the
Close was a float:
> import pyodbc
> import numpy as np
> connection = pyodbc.connect('DSN=DSNname')
> cursor = connection.cursor()
> symbol = 'ibm'
> request = "select to_days(Date), Close from price where symbol = '" +
> symbol + "' and date > '2006-01-01'"
> dtype = numpy.dtype([('Date', '|S10'), ('Close', float)])
> resultIter = cursor.execute(request)
> arr = numpy.fromiter(resultIter, dtype)
As I said I cant test this because I don't have the lib, but it should
Finally, the '|S10' is the string encoding for 10 character wide
string. Others might know of a more elegant way to express this.
On 1/31/07, Keith Goodman <kwgoodman at gmail.com> wrote:
> On 1/31/07, Tom Denniston <tom.denniston at alum.dartmouth.org> wrote:
> > i would do something like the following. I don't have your odbc
> > library so I mocked it up with a fake iterator called "it". This
> > example would be for a two column result where the first is an int and
> > the second a string. Note it creates a recarray which you can have
> > match you database column names if you want to generalize the
> > function. All you need to provide is the dtype equivalent to your
> > query result layout.
> > In : import numpy
> > In : it = iter([(1,'String1'), (2, 'String2')])
> > In : dtype = numpy.dtype([('intvalue', int), ('stringcolumn', '|S20')])
> > In : numpy.fromiter(it, dtype)
> > Out:
> > array([(1, 'String1'), (2, 'String2')],
> > dtype=[('intvalue', '<i4'), ('stringcolumn', '|S20')])
> All this fromiter and recarray is confusing to me. But I'd like to learn.
> How would I hook all this up to a query?
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
More information about the NumPy-Discussion