我不是程序员,我这样做纯粹是出于爱好。
我找到了一种将 numpy 数组保存到 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()
但我有一个问题,就是想找到一种方法来扭转这个过程。
我想从 numpy 数组中的数据库加载数据。一些建议在哪里可以找到一个简单的例子?
只需获取所有值即可。这给你一个元组列表。np.array()
带你回到原始数组:
In [12]: cursor.execute('SELECT * from data')
Out[12]: <sqlite3.Cursor at 0xaf8e9d60>
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
事实上它是一个元组列表并不重要。它与列表的列表一样好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)