class documentation
class SortBy(ViewStage): (source)
Constructor: SortBy(field_or_expr, reverse, create_index)
Sorts the samples in a collection by the given field(s) or expression(s).
Examples:
import fiftyone as fo import fiftyone.zoo as foz from fiftyone import ViewField as F dataset = foz.load_zoo_dataset("quickstart") # # Sort the samples by their `uniqueness` field in ascending order # stage = fo.SortBy("uniqueness", reverse=False) view = dataset.add_stage(stage) # # Sorts the samples in descending order by the number of detections in # their `predictions` field whose bounding box area is less than 0.2 # # Bboxes are in [top-left-x, top-left-y, width, height] format bbox = F("bounding_box") bbox_area = bbox[2] * bbox[3] small_boxes = F("predictions.detections").filter(bbox_area < 0.2) stage = fo.SortBy(small_boxes.length(), reverse=True) view = dataset.add_stage(stage) # # Performs a compound sort where samples are first sorted in descending # order by number of detections and then in ascending order of # uniqueness for samples with the same number of predictions # stage = fo.SortBy( [ (F("predictions.detections").length(), -1), ("uniqueness", 1), ] ) view = dataset.add_stage(stage) num_objects, uniqueness = view[:5].values( [F("predictions.detections").length(), "uniqueness"] ) print(list(zip(num_objects, uniqueness)))
Parameters | |
field | the field(s) or expression(s) to sort by. This can be any of the following:
|
reverse | whether to return the results in descending order |
create | whether to create an index, if necessary, to optimize the sort. Only applicable when sorting by field(s), not expressions |
Method | __init__ |
Undocumented |
Method | to |
Returns the MongoDB aggregation pipeline for the stage. |
Method | validate |
Validates that the stage can be applied to the given collection. |
Property | create |
Whether to create an index, if necessary, to optimize the sort. |
Property | field |
The field or expression to sort by. |
Property | reverse |
Whether to return the results in descending order. |
Class Method | _params |
Returns a list of JSON dicts describing the stage's supported parameters. |
Method | _get |
Undocumented |
Method | _kwargs |
Returns a list of [name, value] lists describing the parameters of this stage instance. |
Method | _needs |
Whether the stage requires frame labels of video samples to be attached. |
Method | _needs |
Whether the stage requires group slice(s) to be attached. |
Instance Variable | _create |
Undocumented |
Instance Variable | _field |
Undocumented |
Instance Variable | _reverse |
Undocumented |
Inherited from ViewStage
:
Method | __eq__ |
Undocumented |
Method | __repr__ |
Undocumented |
Method | __str__ |
Undocumented |
Method | get |
Returns a list of names of fields or embedded fields that may have been edited by the stage, if any. |
Method | get |
Returns a list of fields that have been excluded by the stage, if any. |
Method | get |
Returns a list of names of fields or embedded fields that contain arrays have been filtered by the stage, if any. |
Method | get |
Returns the dynamic group expression for the given stage, if any. |
Method | get |
Returns the media type outputted by this stage when applied to the given collection, if and only if it is different from the input type. |
Method | get |
Returns a list of fields that have been selected by the stage, if any. |
Method | load |
Loads the fiftyone.core.view.DatasetView containing the output of the stage. |
Property | has |
Whether this stage's output view should be loaded via load_view rather than appending stages to an aggregation pipeline via to_mongo . |
Property | outputs |
Whether this stage outputs or flattens dynamic groups. |
Class Method | _from |
Creates a ViewStage instance from a serialized JSON dict representation of it. |
Method | _serialize |
Returns a JSON dict representation of the ViewStage . |
Instance Variable | _uuid |
Undocumented |
overrides
fiftyone.core.stages.ViewStage.to_mongo
Returns the MongoDB aggregation pipeline for the stage.
Only usable if has_view
is False.
Parameters | |
sample | the
fiftyone.core.collections.SampleCollection to which
the stage is being applied |
Returns | |
a MongoDB aggregation pipeline (list of dicts) |
overrides
fiftyone.core.stages.ViewStage.validate
Validates that the stage can be applied to the given collection.
Parameters | |
sample | a
fiftyone.core.collections.SampleCollection |
Raises | |
ViewStageError | if the stage cannot be applied to the collection |
overrides
fiftyone.core.stages.ViewStage._params
Returns a list of JSON dicts describing the stage's supported parameters.
Returns | |
a list of JSON dicts |
overrides
fiftyone.core.stages.ViewStage._kwargs
Returns a list of [name, value] lists describing the parameters of this stage instance.
Returns | |
a list of [name, value] lists |
Whether the stage requires frame labels of video samples to be attached.
Parameters | |
sample | the
fiftyone.core.collections.SampleCollection to which
the stage is being applied |
Returns | |
True/False |
Whether the stage requires group slice(s) to be attached.
Parameters | |
sample | the
fiftyone.core.collections.SampleCollection to which
the stage is being applied |
Returns | |
None, or a list of group slices |