我刚刚开始使用bcolz
包,并在ctables
上运行tutorial。使用fromiter
函数创建表,即:
N = 100*1000
ct = bcolz.fromiter(((i,i*i) for i in range(N)), dtype="i4,f8", count=N, rootdir='mydir', mode="w")
速度很快,在我的电脑上大约需要30毫秒(2.7GHz Core i7带SSD存储),但是第二个示例:
^{pr2}$很慢(45秒)。我可以通过不写入磁盘来接近fromiter
时间(即删除rootdir='mydir', mode="w"
,但仍需2秒左右)。在
这个例子使用了很多非常小的附录,我想知道当一个人有很多数据时,这是否是推荐的用例。关于这些操作需要多长时间,并没有什么确切的数字,只是有很多建议说这个库的速度很快。在
我试着修改代码以将数据写入块中:
with bcolz.zeros(0, dtype="i4,f8", rootdir="mydir", mode='w') as ct:
for i in range(10):
ii = np.arange(10000) + 10000*i
ct.append((ii,ii**2))
如果我不写磁盘,现在需要45毫秒到6毫秒。这似乎更符合我见过的bcolz
案例的建议用途。在
我找不到很多关于写代码时需要阻塞的文档,所以我认为这可能是由于我的系统造成的?在
100个回路,最好为3:3.82 ms/回路
相关问题 更多 >
编程相关推荐