Exportando datos desde sqlite a una matriz numpy

No soy un progtwigdor, hago esto puramente como un pasatiempo ..

Encontré una manera de guardar una matriz numpy en la base de datos sqlite

import sqlite3 import numpy # Array of 4 columns and 100 rows data = numpy.random.rand(100, 4) # Create a sample database conn = sqlite3.connect('sample.db') cursor = conn.cursor() # Create a new table with four columns cursor.execute('''create table data (field1 real, field2 real, field3 real, field4 real)''') conn.commit() # Insert the data array into the 'data' table cursor.executemany('''insert into data values (?, ?, ?, ?)''', map(tuple, data.tolist())) conn.commit() cursor.close() conn.close() 

Pero tengo un problema para encontrar una manera de revertir el proceso … quiero cargar datos de la base de datos en una matriz numpy … ¿Alguna sugerencia de dónde encontrar un ejemplo simple?

Solo trae todos los valores. Eso te da una lista de tuplas. np.array() lo regresa a la matriz original:

 In [12]: cursor.execute('SELECT * from data') Out[12]:  In [13]: alist = cursor.fetchall() In [14]: len(alist) Out[14]: 100 In [15]: alist[0] Out[15]: (0.3327498114993416, 0.6164620040846208, 0.5099007559772143, 0.7808234554641948) In [16]: data1 = np.array(alist) In [17]: np.allclose(data, data1) Out[17]: True 

El hecho de que sea una lista de tuplas no importa. Es tan bueno como una lista de listas.