如何在 O(1) 中按键值获取行?
我在文档中找到的唯一选择行的方法是行选择器,它似乎没有利用列的键控状态。
例如在此表中:
size = 10**4
DT = dt.Frame({'id':range(size)})
DT.key = 'id'
与按行号访问相比,使用行选择器访问真的很慢:
for i in range(size):
DT[dt.f.id==i,:]
# ~2.61 s
for i in range(size):
DT[i,:]
# ~0.03 s
由于该列是键控的,我的期望是能够在 O(1) 中访问,但我不知道实现这一目标的正确方法。