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:
dataTable

Sorted columns of the original table

row_indexColumn object

Row numbers corresponding to data columns

uniquebool

Whether the values of the index must be unique. Defaults to False.

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:
keypython:tuple

Column values at the given row

rowpython:int

Row number

find(key)[source]

Find all rows matching the given key.

Parameters:
keypython:tuple

Column values

Returns:
matching_rowspython: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:
keypython:tuple

Column key

datapython:int

Row number

exactbool

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:
lowerpython:tuple

Lower search bound

upperpython:tuple

Upper search bound

bounds(2,) python:tuple of bool

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

remove(key, data)[source]

Remove the given entry from the sorted array.

Parameters:
keypython:tuple

Column values

datapython:int

Row number

Returns:
successfulbool

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_mappython:dict

Mapping of row numbers to new row numbers

shift_left(row)[source]

Decrement all row numbers greater than the input row.

Parameters:
rowpython:int

Input row number

shift_right(row)[source]

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

Parameters:
rowpython:int

Input row number

sort()[source]

Make row order align with key order.

sorted_data()[source]

Return rows in sorted order.