SortedArray

class astropy.table.SortedArray(data, row_index, unique=False)[source]

Bases: object

Implements a sorted array container using a list of numpy arrays.

Parameters

data : Table

Sorted columns of the original table

row_index : Column object

Row numbers corresponding to data columns

unique : bool (defaults to False)

Whether the values of the index must be unique

Attributes Summary

cols

Methods Summary

add(key, row)

Add a new entry to the sorted array.

find(key)

Find all rows matching the given key.

find_pos(key, data[, exact])

Return the index of the largest key in data greater than or equal to the given key, data pair.

items()

Retrieve all array items as a list of pairs of the form [(key, [row 1, row 2, …]), …]

range(lower, upper, bounds)

Find values in the given range.

remove(key, data)

Remove the given entry from the sorted array.

replace_rows(row_map)

Replace all rows with the values they map to in the given dictionary.

shift_left(row)

Decrement all row numbers greater than the input row.

shift_right(row)

Increment all row numbers greater than or equal to the input row.

sort()

Make row order align with key order.

sorted_data()

Return rows in sorted order.

Attributes Documentation

cols

Methods Documentation

add(key, row)[source]

Add a new entry to the sorted array.

Parameters

key : tuple

Column values at the given row

row : int

Row number

find(key)[source]

Find all rows matching the given key.

Parameters

key : tuple

Column values

Returns

matching_rows : list

List of rows matching the input key

find_pos(key, data, exact=False)[source]

Return the index of the largest key in data greater than or equal to the given key, data pair.

Parameters

key : tuple

Column key

data : int

Row number

exact : bool

If True, return the index of the given key in data or -1 if the key is not present.

items()[source]

Retrieve all array items as a list of pairs of the form [(key, [row 1, row 2, …]), …]

range(lower, upper, bounds)[source]

Find values in the given range.

Parameters

lower : tuple

Lower search bound

upper : tuple

Upper search bound

bounds : tuple (x, y) of bools

Indicates whether the search should be inclusive or exclusive with respect to the endpoints. The first argument x corresponds to an inclusive lower bound, and the second argument y to an inclusive upper bound.

remove(key, data)[source]

Remove the given entry from the sorted array.

Parameters

key : tuple

Column values

data : int

Row number

Returns

successful : bool

Whether the entry was successfully removed

replace_rows(row_map)[source]

Replace all rows with the values they map to in the given dictionary. Any rows not present as keys in the dictionary will have their entries deleted.

Parameters

row_map : dict

Mapping of row numbers to new row numbers

shift_left(row)[source]

Decrement all row numbers greater than the input row.

Parameters

row : int

Input row number

shift_right(row)[source]

Increment all row numbers greater than or equal to the input row.

Parameters

row : int

Input row number

sort()[source]

Make row order align with key order.

sorted_data()[source]

Return rows in sorted order.