A python library for converting between d-dimensional points and indices on a hilbert curve
Project description
Hilbert Bytes
Hilbert Bytes is a python library for converting to and from points in d-dimensions and their corresponding index on a hilbert curve. It's similar to hilbertcurve and numpy-hilbert-curve but is faster and more space efficient than either by keeping manipulations at the byte level, and using numba to compile the results. It also uses arbitrary precision integers, allowing you to make the grid arbitrarily fine
Installation
pip install hilbert-bytes
Usage
import hilbert_bytes
import numpy as np
points = ... # arbitrary d-dimensional points
num, dim = points.shape
# convert to big-endian bytes
points_bytes = points[..., None].astype(">u8").view("u1")
index_bytes = hilbert_bytes.encode(points_bytes) # indies as big-endian ints
new_points_bytes = hilbert_bytes.decode(index_bytes)
If you want the indices as multi-byte ints, you can can do a similar trick in reverse:
index_bytes = ... # an array of big-endian ints
indices = index_bytes.view(">u8").astype("u8")[..., 0]
But note that this will only work if your index fits in 8 bytes
Publishing
rm -rf dist
uv build
uv publish --username __token__
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hilbert_bytes-0.6.0.tar.gz.
File metadata
- Download URL: hilbert_bytes-0.6.0.tar.gz
- Upload date:
- Size: 51.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.28
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
464e79d6463a21f483f34c9ed381440ae33b3ae2fa0853cd23d8f95eb0fa4adf
|
|
| MD5 |
17b1980bb10485e70da75ce6b4e63597
|
|
| BLAKE2b-256 |
14a37fcf9ca39ac0170126a6fc8a5da91360e9edd6edae881410b1ebfe982c92
|
File details
Details for the file hilbert_bytes-0.6.0-py3-none-any.whl.
File metadata
- Download URL: hilbert_bytes-0.6.0-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.28
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4f72f7be98f499f883db6db8fc95e47f59c7ba368efef595fc6d8396f1cbebd
|
|
| MD5 |
70c990047b298c8e40543271d7e7e26d
|
|
| BLAKE2b-256 |
e8a98a0af061a286860381745ae785ce0ccaae887e9aa6fce905f7c03ac28b3e
|