1

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) でアクセスできることを期待していますが、これを実現する正しい方法がわかりません。

4

1 に答える 1