Multipurpose interpolation library focussing on RBF, written in rust.
Project description
PyHolo
Python bindings for flexible interpolation library featuring Radial Basis Function (RBF) written in rust. It features:
- RBF interpolation with many kernels to choose from.
- Flexible Data Types: Supports input and output datasets of type float, list[float], ndarray.
Installation
pip install pyholo
For optimal performance, it's recommended to use a virtual environment.
Quick Start
1D Interpolation of a target function
import numpy as np
import pyholo as holo
def target_function(pts):
return 10.0 + np.sum(
np.power(pts, 2) + 10.0 * np.cos(2.0 * np.pi * pts)
)
# Get or set input/output data
x_train = np.linspace(-5.0, 5.0, 50)
y_train = np.array([target_function(x) for x in x_train])
# Get predictions from each model
pyholo_pred = holo.Rbf(x_train, y_train, "gaussian", 1.0)
# Points to predict at
x_new = np.linspace(-5.0, 5.0, 500)
# Make predictions
y_pred = pyholo_pred.predict(x_new)
Plotting against other Rbf implementations (scipy, numpy) and the expected values:
3D interpolation of data
import numpy as np
import pyholo as holo
# Training data
x_train = np.array([
0.000, 512.000, 1182.490, 1911.273, 2788.547,
4227.750, 6481.706, 9609.367, 11773.210,
13188.649, 14400.000
])
y_train = np.array([
[6950.000, 0.000, 0.000],
[5930.999, 4386.866, 974.859],
[2498.780, 8537.536, 1897.230],
[-1993.234, 10819.437, 2404.319],
[-7051.251, 11465.688, 2547.931],
[-13549.361, 9748.529, 2166.340],
[-19093.612, 3887.659, 863.924],
[-18104.032, -5716.279, -1270.284],
[-11425.229, -10664.783, -2369.952],
[-4206.775, -11312.308, -2513.846],
[3167.219, -7987.115, -1774.914],
])
# Create and fit RBF model
rbf = holo.Rbf(x_train, y_train, kernel='thin_plate_spline', epsilon=1.0)
# Predict on test points
x_test = np.linspace(x_train.min(), x_train.max(), 200)
y_pred = rbf.predict(x_test)
Plotting against the training data and expected values:
License
MIT License - See LICENSE for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
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 pyholo-0.1.5-cp38-abi3-win_amd64.whl.
File metadata
- Download URL: pyholo-0.1.5-cp38-abi3-win_amd64.whl
- Upload date:
- Size: 162.0 kB
- Tags: CPython 3.8+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef4012c5e304feed0dd51269a5e6b1d343e5317732af57fc67ae9ecee2ee53f2
|
|
| MD5 |
f7bb050c6e2b85489a8474efe4a28f0e
|
|
| BLAKE2b-256 |
57c6b4973f2c31f2e43bbed504f5388e322560a4cad75bc745ce439f5902077e
|
File details
Details for the file pyholo-0.1.5-cp38-abi3-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: pyholo-0.1.5-cp38-abi3-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 259.4 kB
- Tags: CPython 3.8+, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec750eaff98931c48a8a8d4bce5491d27b0c76d045eba3afc5f4629c3c55802f
|
|
| MD5 |
2f83a7d482b43ba937337a45e0919d14
|
|
| BLAKE2b-256 |
b2e38083a9ca7e709cfa836d52f190fc6f8a00b27e0f1724afe9b2cecf1949e6
|
File details
Details for the file pyholo-0.1.5-cp38-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyholo-0.1.5-cp38-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 227.8 kB
- Tags: CPython 3.8+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9ddc2c111f43c520df4ea6e29a996ee60592fa4201bd418aa48f2978ad64467
|
|
| MD5 |
13c7bcd4b5bba1bf6241a31f6e77ba38
|
|
| BLAKE2b-256 |
52122346150d5367121148b1c918bd632db1f41e59860d2ada77e13da18f184e
|