将大文件从Python填充到sqlite中

2024-05-20 20:20:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉Python和Sqlite。我运行大型神经网络模拟,并将峰值存储为ASCII文件(这里命名为峰值时间.csv)有两列,第一列是峰值时间,第二列是神经元Id。每次模拟运行都有一个不同的参数(称之为theta)。我想填充数据库,这样我就可以用Neuron Id和Theta进行查询,得到这个神经元Id的所有峰值时间。 这就是我正在做的,它很管用,但速度非常慢,因为我在每一个高峰时间都在循环。有人能给我提个建议让它快点吗?提前谢谢。在

from  peewee import *
from numpy import *
spkDB = SqliteDatabase('simData.db')

class SimData(Model):
    neuronId = IntegerField();

    class Meta:
        database = spkDB

class SpikeTimes(Model):
    spkNeuronId = ForeignKeyField(SimData, related_name = 'neuron')
    theta = DoubleField();
    spkTimes = DoubleField();      

    class Meta:
        database = spkDB

st = loadtxt('spkTimes.csv')
curTheta = 0;
SimData.create_table()
SpikeTimes.create_table()
for k in unique(st[:, 1]):
    tmp = SimData.create(neuronId = k)
    tmp.save()
    for m in st[st[:, 1] == k, 0]:
        tmpSt = SpikeTimes.create(spkNeuronId = tmp, theta = curTheta, spkTimes = m)
        tmpSt.save()

print 'done'

Tags: csvfromimportidcreate时间tmpclass