A fast scientific math library powered by Cython
Project description
Numera
A fast scientific math library for Python, powered by Cython.
Installation
pip install Numera
Modules
| Module | Description |
|---|---|
Numera.Core.Matrices |
Linear algebra — dot product, inverse, determinant, eigenvalues |
Numera.Stats |
Descriptive statistics — mean, std, skewness, correlation... |
Numera.Calculus |
Numerical methods — derivatives, integrals, ODE, root finding |
Numera.Math |
Math functions — log, exp, sqrt, factorial, combinations |
Quick start
Matrices
from Numera.Core.Matrices import Matrix
A = Matrix([[1, 2], [3, 4]])
B = Matrix([[5, 6], [7, 8]])
print(A @ B) # matrix product → [[19, 22], [43, 50]]
print(A.det()) # determinant → -2.0
print(A.inv()) # inverse
print(A.T) # transpose
vals, vecs = A.eigenvalues()
Statistics
from Numera.Stats import Stats
s = Stats([4, 7, 13, 2, 1, 9, 15, 3])
print(s.mean()) # 6.75
print(s.median()) # 5.5
print(s.std()) # 4.86
print(s.skewness()) # asymmetry
print(s.percentile(75))
print(Stats.correlation([1, 2, 3, 4], [2, 4, 6, 8])) # 1.0
Calculus
from Numera.Calculus import Calculus
import math
# Derivative
Calculus.derivative(math.sin, 0) # ≈ 1.0
# Integral
Calculus.integrate_simpson(lambda x: x**2, 0, 1) # ≈ 0.333
# ODE solver — dy/dt = -y
t, y = Calculus.runge_kutta4(lambda t, y: -y, y0=1.0, t0=0, tf=5)
# Root finding — √2
Calculus.newton(lambda x: x**2 - 2, x0=1.0) # ≈ 1.4142
Math
from Numera.Math import Math
Math.ln(2.718) # ≈ 1.0
Math.log(1000) # 3.0
Math.factorial(10) # 3628800
Math.C(10, 3) # 120 — combinations
Math.P(5, 2) # 20 — permutations
Math.cumsum([1, 2, 3, 4]) # [1, 3, 6, 10]
Math.exp([0, 1, 2]) # [1.0, 2.718, 7.389]
Performance
Numera uses Cython extensions compiled to native C with:
- No bounds checking
- No wraparound
- Fast C division
-O3compiler optimization
Requirements
- Python 3.9+
- NumPy >= 1.21
License
MIT# Numera
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
numera-0.2.1.tar.gz
(863.0 kB
view details)
File details
Details for the file numera-0.2.1.tar.gz.
File metadata
- Download URL: numera-0.2.1.tar.gz
- Upload date:
- Size: 863.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e0992780f56ac7a78c75540d9c1c005c195f68c867aa4dcf971de2079a1ec08
|
|
| MD5 |
acdca6d5aa72180a3e932b690e6d49ac
|
|
| BLAKE2b-256 |
ddc2e6bde2afbf10c84189853117ad40229be95d55ec3f7cbf4d40df3eeb344b
|