Skip to main content

Multipurpose interpolation library focussing on RBF, written in rust.

Project description

PyHolo

Build & Test License: MIT

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyholo-0.1.5-cp38-abi3-win_amd64.whl (162.0 kB view details)

Uploaded CPython 3.8+Windows x86-64

pyholo-0.1.5-cp38-abi3-manylinux_2_34_x86_64.whl (259.4 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.34+ x86-64

pyholo-0.1.5-cp38-abi3-macosx_11_0_arm64.whl (227.8 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

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

Hashes for pyholo-0.1.5-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ef4012c5e304feed0dd51269a5e6b1d343e5317732af57fc67ae9ecee2ee53f2
MD5 f7bb050c6e2b85489a8474efe4a28f0e
BLAKE2b-256 57c6b4973f2c31f2e43bbed504f5388e322560a4cad75bc745ce439f5902077e

See more details on using hashes here.

File details

Details for the file pyholo-0.1.5-cp38-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pyholo-0.1.5-cp38-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ec750eaff98931c48a8a8d4bce5491d27b0c76d045eba3afc5f4629c3c55802f
MD5 2f83a7d482b43ba937337a45e0919d14
BLAKE2b-256 b2e38083a9ca7e709cfa836d52f190fc6f8a00b27e0f1724afe9b2cecf1949e6

See more details on using hashes here.

File details

Details for the file pyholo-0.1.5-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyholo-0.1.5-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e9ddc2c111f43c520df4ea6e29a996ee60592fa4201bd418aa48f2978ad64467
MD5 13c7bcd4b5bba1bf6241a31f6e77ba38
BLAKE2b-256 52122346150d5367121148b1c918bd632db1f41e59860d2ada77e13da18f184e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page