質問
Pandas HDFStore の並べ替えられた列内の値遷移境界を見つけるためのツールを作成したいと考えています。広範囲のデータ分布に対して、これをできるだけ速く実行したいと考えています。
例
並べ替えられた大きな列が与えられた場合
[1, 1, 3, 3, 3, 3, 3, 5, 6, 9, 10, 10, 10, 15]
等間隔の場所をいくつか選択します
[1, 1, 3, *3*, 3, 3, 3, *5*, 6, 9, 10, *10*, 10, 15]
これらから、値の遷移がある次のポイント、つまり次の値が現在の値と異なる場所に右に移動したい
[1, 1, 3, 3, 3, 3, *3*, *5*, 6, 9, 10, 10, *10*, 15]
取得するデータの分布に関係なく、これを迅速かつ確実に実行したいと考えています。
いくつかの懸念
- データが大きく、ディスクからロードするとコストがかかる場合があります。全体をメモリにロードしたくない
- 逆に、一度に 1 つの要素をロードすると非常に遅くなると思われるので、おそらく 100 行程度のチャンクを取り込みたいと考えています。ここでの良い経験則は何ですか?
- 非常に多くの列がある場合があります。1 つの列しか気にしない場合、不要なコストを回避するにはどうすればよいですか (HDFStore が行指向であることはわかっていますが、ここには何か賢いものがあるかもしれません)。
- 非常に長い並べ替えられたシーケンス (数十万の要素) に遭遇する可能性があります