loc_annot#

property Dataset.loc_annot: DatasetAnnotLocator[Self]#

Filter a dataset by indexing the annotations you want with their id.

Similar to pandas.DataFrame.loc for annotations, but will create a new Dataset object

Note

  • You cannot set item with this method the same way you can in pandas

  • Images emptied of annotation are NOT removed. If you want to remove emptied images, Dataset.filter_annotations() is better suited.

Returns:

Locator with a [] functionality relative to annotations id

Example

>>> from lours.utils.doc_utils import dummy_dataset
>>> example = dummy_dataset(2, 2, seed=1)
>>> example
Dataset object containing 2 images and 2 objects
Name :
    shake_effort_many
Images root :
    care/suggest
Images :
    width  height        relative_path  type  split
id
0     955     229  determine/story.jpg  .jpg  train
1     131     840       air/method.bmp  .bmp  train
Annotations :
    image_id category_str  category_id  ...   box_y_min   box_width  box_height
id                                      ...
0          1       listen           14  ...  276.974642    9.718823  184.684056
1          0        reach           22  ...    6.311037  123.141689  174.239136

[2 rows x 8 columns]
Label map :
{14: 'listen', 15: 'marriage', 22: 'reach'}
>>> example.loc_annot[example.annotations["box_height"] > 180]
Dataset object containing 2 images and 1 object
Name :
    shake_effort_many
Images root :
    care/suggest
Images :
    width  height        relative_path  type  split
id
0     955     229  determine/story.jpg  .jpg  train
1     131     840       air/method.bmp  .bmp  train
Annotations :
    image_id category_str  category_id  ...   box_y_min  box_width  box_height
id                                      ...
0          1       listen           14  ...  276.974642   9.718823  184.684056

[1 rows x 8 columns]
Label map :
{14: 'listen', 15: 'marriage', 22: 'reach'}