Это самостоятельный пример, который иллюстрирует общую идею.numpy.recarray
ваш друг,
from sqlite3 import connect
from numpy import asarray
db = connect(":memory:")
c = db.cursor()
c.execute('create table bigtop (a int, b int, c int)')
for v in [(1,2,3),(4,5,6),(7,8,9)]:
c.execute('insert into bigtop values (?,?,?)',v)
s = c.execute('select * from bigtop')
h = [(i[0],int) for i in c.description]
# You can also use 'object' for your type
# h = [(i[0],object) for i in c.description]
a = asarray(list(s),dtype=h)
print a['a']
дает первый столбец,
[1 4 7]
и
print a.dtype
дает имя и тип каждого столбца,
[('a', '<i4'), ('b', '<i4'), ('c', '<i4')]
альтернативно, если вы использовали object
в качестве типа, вы получите,
[('a', '|O4'), ('b', '|O4'), ('c', '|O4')]