Biblioteka matematyczna
Project description
Math Bridge 🌉
Zaawansowana biblioteka matematyczna do obliczeń z funkcjami gamma, rozkładem Poissona i Kelly Criterion.
✨ Cechy
- ✅ Pełna kompatybilność z scipy, numpy, keras, xgboost
- ✅ Funkcje gamma (dodatnie, ujemne, zespolone)
- ✅ Rozkład Poissona z pełnymi statystykami
- ✅ Kelly Criterion i zarządzanie bankrollem
- ✅ Bezpieczne operacje matematyczne
- ✅ Brak błędów stringowych!
📦 Instalacja
pip install math-bridge
🚀 Szybki start
from math_bridge import MathBridge
mb = MathBridge()
# Funkcja Gamma
gamma_val = mb.gamma_positive(5)
print(f"Γ(5) = {gamma_val}") # 24.0
# Rozkład Poissona
prob = mb.poisson_probability(k=17, lmbda=12)
print(f"P(17; 12) = {prob:.6f}")
# Kelly Criterion
confidence = mb.kelly_confidence(errors=0, fraction_str='1/2')
print(f"Confidence = {confidence:.4f}")
📚 Dokumentacja
Funkcje Gamma
gamma_positive(z)
Funkcja gamma dla wartości dodatnich.
mb.gamma_positive(5) # 24.0
mb.gamma_positive([1, 2, 3]) # array([1., 1., 2.])
gamma_negative(x)
Funkcja gamma dla wartości ujemnych.
mb.gamma_negative(-1.5) # 2.363271801207355
gamma_complex(z_real, z_imag)
Funkcja gamma dla liczb zespolonych.
result = mb.gamma_complex(1, 2)
print(result['modulus']) # Moduł
print(result['argument']) # Argument
Rozkład Poissona
poisson_probability(k, lmbda)
Prawdopodobieństwo P(k; λ).
mb.poisson_probability(17, 12) # 0.038325
poisson_full_stats(lmbda, k=None)
Pełne statystyki rozkładu.
stats = mb.poisson_full_stats(12, 17)
print(stats)
# {
# 'lambda': 12,
# 'expected_value': 12,
# 'median': 12.0,
# 'variance': 12,
# 'entropy': 2.154,
# 'probability': 0.038325,
# 'cdf': 0.937
# }
Kelly Criterion
kelly_confidence(errors, fraction_str)
Oblicza confidence % dla danej liczby błędów.
mb.kelly_confidence(0, '1/2') # 0.66 (66%)
mb.kelly_confidence(3, '1/3') # 0.1875 (18.75%)
combine_fractions(frac1, frac2)
Łączy zbliżone frakcje Kelly.
mb.combine_fractions('1/3', '1/2') # '5/6'
mb.combine_fractions('1/4', '2/4') # '3/4'
Macierz wyników
interpret_result(goals_home, goals_away)
Interpretuje wynik meczu.
result = mb.interpret_result(2, 0)
print(result['matrix_code']) # 'A8'
print(result['result_1x2']) # '1'
Wzory złożone
formula_3_plus(a, b, delta, gamma_val, beta_val)
Wzór 3: [B + (δ + γ)]³ / [B + γ]³
result = mb.formula_3_plus(2, 3, 1.5, 2.5, 3.0)
delta_discriminant(a, b, c)
Delta równania kwadratowego.
delta = mb.delta_discriminant(1, -3, 2)
print(delta['delta']) # 1
print(delta['solutions']) # 2
🔧 Funkcje pomocnicze
Bezpieczne operacje
# Bezpieczne dzielenie (nie crashuje przy dzieleniu przez 0)
mb.safe_divide(10, 0) # nan zamiast błędu
# Bezpieczne potęgowanie
mb.safe_power(2, 1000) # Obsługuje bardzo duże liczby
# Bezpieczny logarytm
mb.safe_log(-5) # nan zamiast błędu
Walidacja danych
result = mb.validate_input(0.5, 'probability')
print(result['valid']) # True
result = mb.validate_input(-0.5, 'positive')
print(result['valid']) # False
print(result['error']) # 'Wartość musi być dodatnia'
Konwersja danych
# String → float
mb.from_string('1/2') # 0.5
mb.from_string('3.14') # 3.14
# Do numpy array
mb.to_numpy_array([1, 2, 3]) # array([1., 2., 3.])
# Formatowanie wyjścia
mb.format_output(3.14159, precision=2) # "3.14"
📊 Przykłady użycia
Przykład 1: Analiza rozkładu Poissona
from math_bridge import MathBridge
mb = MathBridge()
# Parametry
lambda_param = 12
k_values = range(5, 20)
# Obliczenia
for k in k_values:
prob = mb.poisson_probability(k, lambda_param)
print(f"P({k}; {lambda_param}) = {prob:.6f}")
Przykład 2: Kelly Criterion dla zakładów
from math_bridge import MathBridge
mb = MathBridge()
# Sprawdź wszystkie frakcje dla 0 błędów
fractions = ['1/2', '1/3', '2/3', '1/4', '1/5']
for frac in fractions:
confidence = mb.kelly_confidence(errors=0, fraction_str=frac)
print(f"Frakcja {frac}: {confidence:.4f} ({confidence*100:.2f}%)")
Przykład 3: Łączenie podobnych frakcji
from math_bridge import MathBridge
mb = MathBridge()
# Sprawdź podobieństwo
similarity = mb.check_fraction_similarity(
errors1=5, frac1='1/3',
errors2=6, frac2='1/2',
tolerance=0.005
)
if similarity['similar']:
print(f"Frakcje są podobne! Łączę je:")
print(f"Wynik: {similarity['combined']}")
Przykład 4: Analiza wyników meczów
from math_bridge import MathBridge
mb = MathBridge()
# Lista wyników
matches = [
(3, 1), # 3-1
(2, 2), # 2-2
(0, 2), # 0-2
]
for home, away in matches:
result = mb.interpret_result(home, away)
print(f"{home}-{away}: {result['matrix_code']} (typ: {result['result_1x2']})")
🧪 Testy
# Instalacja z opcją dev
pip install math-bridge[dev]
# Uruchomienie testów
pytest tests/
# Z pokryciem kodu
pytest --cov=math_bridge tests/
🤝 Integracja z innymi bibliotekami
Z NumPy
import numpy as np
from math_bridge import MathBridge
mb = MathBridge()
# Konwersja do numpy
data = [1, 2, 3, 4, 5]
np_array = mb.to_numpy_array(data)
# Obliczenia wektorowe
gammas = mb.gamma_positive(np_array)
print(gammas) # array([ 1., 1., 2., 6., 24.])
Z Pandas
import pandas as pd
from math_bridge import MathBridge
mb = MathBridge()
# DataFrame z danymi
df = pd.DataFrame({
'k': [10, 12, 14, 16, 18],
'lambda': [12, 12, 12, 12, 12]
})
# Oblicz prawdopodobieństwa
df['probability'] = df.apply(
lambda row: mb.poisson_probability(row['k'], row['lambda']),
axis=1
)
Z XGBoost/Keras
from math_bridge import MathBridge
import numpy as np
mb = MathBridge()
# Przygotuj features z matematycznych funkcji
def create_features(x):
return np.array([
mb.gamma_positive(x),
mb.safe_log(x),
mb.safe_sqrt(x)
])
# Użyj w modelu ML
X_train = np.array([create_features(x) for x in range(1, 100)])
# Teraz możesz użyć X_train w XGBoost/Keras!
⚠️ Uwagi
- Brak błędów stringowych: Wszystkie funkcje zwracają
np.nanzamiast crashować - Bezpieczne operacje: Dzielenie przez zero, logarytmy z ujemnych liczb - wszystko obsłużone
- Kompatybilność: Działa z scipy 1.5+, numpy 1.19+, Python 3.7+
📄 Licencja
MIT License - możesz używać komercyjnie!
🐛 Zgłaszanie błędów
GitHub Issues: https://github.com/twoj-username/math-bridge/issues
👨💻 Autor
Twoje Imię
- Email: twoj@email.com
- GitHub: @twoj-username
🌟 Wsparcie
Jeśli biblioteka Ci pomogła, zostaw ⭐ na GitHub!
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
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 math_bridge-1.0.0.tar.gz.
File metadata
- Download URL: math_bridge-1.0.0.tar.gz
- Upload date:
- Size: 16.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2b43a6977b43c83c6ab077596ad0330ad5fe5386a9e8a660e38ccf086d09ced
|
|
| MD5 |
79e2db4cc5852e3dddfa61453611c53a
|
|
| BLAKE2b-256 |
07c7beacd424d810be170288c7da275428507f68d4731f90acec9bf903312a86
|
File details
Details for the file math_bridge-1.0.0-py3-none-any.whl.
File metadata
- Download URL: math_bridge-1.0.0-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d27db8d127b2edc57a2b672b365679b7836d4ba0abca26982deab21fd51932da
|
|
| MD5 |
6ee1ef9338c41a68d85d7ed20fde0fe4
|
|
| BLAKE2b-256 |
10925bcc63f289137319e00f8d2e92b0ac47e3506f229e9d32ef539239a836fe
|