http://www.pena.lt/y/blog.html
🔴 LFC: best attack in the league paired with a mid-table defence
⚪️ ARS: Elite at both ends. They have the #1 defence and the #3 attack
🌳 Forest: A disaster at both ends of the pitch
🔴 LFC: best attack in the league paired with a mid-table defence
⚪️ ARS: Elite at both ends. They have the #1 defence and the #3 attack
🌳 Forest: A disaster at both ends of the pitch
Questions or feedback welcome at pena.lt/y/contact
Install: pip install penaltyblog
GitHub: github.com/martineastwo...
Questions or feedback welcome at pena.lt/y/contact
Install: pip install penaltyblog
GitHub: github.com/martineastwo...
I'll be steadily expanding these over the coming weeks to cover all functionality in the package.
Docs: penaltyblog.readthedocs.io
I'll be steadily expanding these over the coming weeks to cover all functionality in the package.
Docs: penaltyblog.readthedocs.io
- New logarithmic overround removal method for better accuracy
- Structured results instead of raw arrays
- Better handling of edge cases
Making it easier to work with bookmaker probabilities in your analyses.
- New logarithmic overround removal method for better accuracy
- Structured results instead of raw arrays
- Better handling of edge cases
Making it easier to work with bookmaker probabilities in your analyses.
- Kelly Criterion for multiple outcomes
- Arbitrage opportunity detection
- Value bet identification
- Hedge bet calculations
- Odds format conversion (decimal/fractional/American)
All functions now return structured outputs for easier integration.
- Kelly Criterion for multiple outcomes
- Arbitrage opportunity detection
- Value bet identification
- Hedge bet calculations
- Odds format conversion (decimal/fractional/American)
All functions now return structured outputs for easier integration.
💻 GitHub: github.com/martineastwo...
🐍 pip install penaltyblog
Feedback welcome, let me know what you build!
💻 GitHub: github.com/martineastwo...
🐍 pip install penaltyblog
Feedback welcome, let me know what you build!
Filter datasets with safe, Pythonic expressions:
- AST-parsed (no eval)
- Variables, regex, dates
- Access nested fields
Filter datasets with safe, Pythonic expressions:
- AST-parsed (no eval)
- Variables, regex, dates
- Access nested fields
- Cython-powered analytical gradients for speed + stability
- Fine-tune with minimizer_options:
- Cython-powered analytical gradients for speed + stability
- Fine-tune with minimizer_options:
Build interactive football visualisations with:
- Multiple layouts & themes
- Scatter, heatmaps, arrows, comets
- Custom hover tooltips
Build interactive football visualisations with:
- Multiple layouts & themes
- Scatter, heatmaps, arrows, comets
- Custom hover tooltips
pena.lt/y/2025/06/10...
pena.lt/y/2025/06/10...
Why I built it 👉 pena.lt/y/2025/05/25...
Docs 👉 penaltyblog.readthedocs.io/en/latest/in...
Why I built it 👉 pena.lt/y/2025/05/25...
Docs 👉 penaltyblog.readthedocs.io/en/latest/in...
You can filter, group, and summarize JSON-like data without flattening or loading everything into memory.
👇 Example:
You can filter, group, and summarize JSON-like data without flattening or loading everything into memory.
👇 Example: