data_compression.coordinate_compression¶
- Assumption:
- The values to compress are assumed to be comparable, values can be sorted and compared with ‘<’ and ‘>’ operators. 
 
Attributes¶
Classes¶
| A class for coordinate compression. | 
Module Contents¶
- class data_compression.coordinate_compression.CoordinateCompressor(arr: list[int | float | str])¶
- A class for coordinate compression. - This class allows you to compress and decompress a list of values. - Mapping: In addition to compression and decompression, this class maintains a mapping between original values and their compressed counterparts using two data structures: a dictionary coordinate_map and a list reverse_map: - coordinate_map: A dictionary that maps original values to their compressed - coordinates. Keys are original values, and values are compressed coordinates. - reverse_map: A list used for reverse mapping, where each index corresponds to a compressed coordinate, and the value at that index is the original value. 
 - Example of mapping: Original: 10, Compressed: 0 Original: 52, Compressed: 1 Original: 83, Compressed: 2 Original: 100, Compressed: 3 - This mapping allows for efficient compression and decompression of values within the list. - compress(original: float | str) int¶
- Compress a single value. - Args: original: The value to compress. - Returns: The compressed integer, or -1 if not found in the original list. - >>> arr = [100, 10, 52, 83] >>> cc = CoordinateCompressor(arr) >>> cc.compress(100) 3 >>> cc.compress(7) # Value not in the original list -1 
 - compress_coordinates() None¶
- Compress the coordinates in the input list. - >>> arr = [100, 10, 52, 83] >>> cc = CoordinateCompressor(arr) >>> cc.coordinate_map[83] 2 >>> cc.coordinate_map[80] # Value not in the original list Traceback (most recent call last): ... KeyError: 80 >>> cc.reverse_map[2] 83 
 - decompress(num: int) int | float | str¶
- Decompress a single integer. - Args: num: The compressed integer to decompress. - Returns: The original value. - >>> arr = [100, 10, 52, 83] >>> cc = CoordinateCompressor(arr) >>> cc.decompress(0) 10 >>> cc.decompress(5) # Compressed coordinate out of range -1 
 - arr¶
 - coordinate_map: dict[int | float | str, int]¶
 - n¶
 - reverse_map: list[int | float | str]¶
 
- data_compression.coordinate_compression.arr: list[int | float | str] = [100, 10, 52, 83]¶