pyarrowspace
Python bindings for arrowspace-rs.
arrowspace is a graph-based analytics library for vector spaces, supported by a graph representation and a key-value store. The main use-cases targeted are: AI search capabilities as advanced vector similarity, graph characterisation analysis and search, indexing of high-dimensional vectors. Design principles described in this article.
For labs and tests please see tests/
Installation
Core library
The core library ships as a compiled Rust extension. It only requires numpy, pyarrow, pandas, and scikit-learn:
pip install arrowspace
Optional extras
Additional capabilities are available as optional extras:
| Extra | Packages included | Use case |
|---|---|---|
embeddings |
datasets, sentence-transformers, transformers[torch]<5.0, tsdae |
Generating embeddings from text via HuggingFace models; required for test_1_quora_questions.py and all tests above |
benchmarks |
beir, nltk |
Running BEIR/MS-MARCO benchmark suites and NLP preprocessing |
viz |
matplotlib, seaborn, tqdm |
Plotting results and progress bars in test scripts |
full |
all of the above | Full development and research environment |
Install with one or more extras:
# Required to run test_1_quora_questions.py and above
pip install arrowspace[embeddings]
# Benchmarking + visualisation
pip install arrowspace[benchmarks,viz]
# Everything (for running the full test suite)
pip install arrowspace[full]
Note:
tests/test_0_*.pyonly require the core install. All tests numberedtest_1and above require at minimumarrowspace[embeddings].
Build from source
If you have Cargo installed, you can compile and install locally using maturin:
pip install maturin[patchelf]
# quick development build
maturin develop
# optimised release build (recommended for large datasets)
maturin develop --release
Tests
test_0_*.py scripts only require the core install:
python tests/test_0_0.py
test_1 and above require the embeddings extra (pip install arrowspace[embeddings]):
python tests/test_1_quora_questions.py
Higher-numbered tests (test_3 and above) additionally require benchmarks and viz:
pip install arrowspace[full]
python tests/test_3_beir.py
Some tests require downloading a dataset separately or fine-tuning embeddings on a given dataset.
Simplest Example
from arrowspace import ArrowSpaceBuilder
import numpy as np
items: np.array = np.array(
[[0.1, 0.2, 0.3], [0.0, 0.5, 0.1], [0.9, 0.1, 0.0]],
dtype = np.float64
)
graph_params: dict = {
"eps": 1.0,
"k": 6,
"topk": 3,
"p": 2.0,
"sigma": 1.0,
}
# Create an ArrowSpace instance, returning the computed
# signal graph and lambdas
aspace, gl = ArrowSpaceBuilder().build(graph_params, items)
# Search comparable items
# defaults: k = nitems, alpha = 0.9, beta = 0.1
query: np.array = np.array(
[0.05, 0.2, 0.25],
dtype = np.float64
)
tau: float = 1.0
hits: list = aspace.search(query, gl, tau)
# Search returns a list of `(index, score`) tuples, where
# expected value from the code above show the first index
# having the top score, i.e., being nearest.
print(hits)
# [ (0, 0.989743318610787), (1, 0.7565344158360029), (2, 0.22151940739207396) ]
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 arrowspace-0.26.6.tar.gz.
File metadata
- Download URL: arrowspace-0.26.6.tar.gz
- Upload date:
- Size: 17.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6d089cf229c1194a2e250d6b65d617cd947fda9b3162cf7f11faf66f3c09d84
|
|
| MD5 |
9459d39dca8e77630c4c419bcb9f1672
|
|
| BLAKE2b-256 |
46d7058efea4ce91d754b83b6f29cbd3d8ca161313d8f7ca7215e2b765346473
|
File details
Details for the file arrowspace-0.26.6-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: arrowspace-0.26.6-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.2 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
460eb122f7ba7b315f8562995574bc3b2c72a8e7f9a29c4911ae0860df7cb32e
|
|
| MD5 |
e0fc683746cca8853e1a6fa0efdbab55
|
|
| BLAKE2b-256 |
19bc16e2fceca083e67b620a504a05bee432b7539afaf498751f526ab104a645
|