(self)
| 481 | return sum(self.sizes) |
| 482 | |
| 483 | def __iter__(self): |
| 484 | sums = np.cumsum(self.sizes) |
| 485 | idxs = np.arange(self.__len__()) |
| 486 | self.rng.shuffle(idxs) |
| 487 | idxs = np.array(list(map( |
| 488 | lambda x: np.searchsorted(sums, x, 'right'), idxs))) |
| 489 | itrs = [k.__iter__() for k in self.df_lists] |
| 490 | assert idxs.max() == len(itrs) - 1, "{}!={}".format(idxs.max(), len(itrs) - 1) |
| 491 | for k in idxs: |
| 492 | yield next(itrs[k]) |
| 493 | # TODO run till exception |
| 494 | |
| 495 | |
| 496 | class ConcatData(DataFlow): |