SortedArray

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

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] [edit on github]

Add a new entry to the sorted array.

Parameters:
key : tuple

Column values at the given row

row : int

Row number

find(key)[source] [edit on github]

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] [edit on github]

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] [edit on github]

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

range(lower, upper, bounds)[source] [edit on github]

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] [edit on github]

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] [edit on github]

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] [edit on github]

Decrement all row numbers greater than the input row.

Parameters:
row : int

Input row number

shift_right(row)[source] [edit on github]

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

Parameters:
row : int

Input row number

sort()[source] [edit on github]

Make row order align with key order.

sorted_data()[source] [edit on github]

Return rows in sorted order.