PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱Symbolica.

Symbolica -
это высокопроизводительная библиотека компьютерной алгебры для Python и Rust. Она спроектирована специально для работы с огромными математическими выражениями, символьных преобразований (symbolic rewrites), точной полиномиальной арифметики и оптимизированных численных вычислений.

Этому инструменту доверяют ученые из CERN, а также ведущие исследовательские группы из ETH Zurich, Университета Цюриха, Университета Берна и Технологического института Карлсруэ.

❓Почему Symbolica:

🔘Единое ядро: Нативные API для Python и Rust, работающие на одном и том же сверхбыстром символьном движке.

🔘Максимальное ускорение: Оптимизированные численные вычислители с генерацией кода на лету (JIT), поддержкой C++, SIMD, ASM и вычислений на GPU через CUDA.

🔘Работа с Big Data в математике: Встроенные инструменты потоковой передачи данных (streaming) для выражений, которые слишком велики, чтобы целиком поместиться в оперативной памяти.

🔘Гибкая логика: Сопоставление с образцом (pattern matching) и перезапись для адаптации алгебры под конкретные доменные задачи.

🔘Смешанные вычисления: Поддержка комбинации точных и численных расчетов с автоматическим отслеживанием погрешности.

🔻Пример использования (калибровка маятника):

Библиотека позволяет изящно совмещать символьные манипуляции, разложение в ряды и финальный численный расчет:

from symbolica import *

θ, κ = S("θ", "κ")
V = κ * (1 - θ.cos())
τ = -V.derivative(θ) # Символьное дифференцирование: −κ*sin(θ)

# Разложение крутящего момента в ряд для модели малых углов
# Результат: −κθ + 1/6*κθ³ + O(θ⁴)
τ_small = τ.series(θ, 0, 3)

# Подстановка точек измерений, автоматическое решение
# параметрической линейной системы и вывод численного результата...


📦Установка:

pip install symbolica

#Symbolica #Python #Rust #Math #ComputerAlgebra #CERN #DataScience #Physics #CUDA #DevTools #OpenSource

📱Ссылка на репозиторий:
https://github.com/symbolica-dev/symbolica
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍3
📱Pydantic Pint.

Pydantic Pint
- это библиотека для Python, объединяющая возможности валидации данных из Pydantic с библиотекой для работы с физическими величинами и единицами измерения.

Если ваш проект связан с инженерией, научными вычислениями, геоданными или физикой, вам наверняка знакома проблема: Pydantic отлично проверяет типы и структуры, а Pint берет на себя математику над размерными величинами (метры, килограммы, секунды, градусы). По умолчанию они несовместимы, и разработчикам приходится писать кастомные сериализаторы. pydantic-pint устраняет этот разрыв с помощью чистого синтаксиса typing.Annotated.

🔹Ключевые возможности:

🔘Строгая типизация размерностей: Позволяет задать целевую единицу измерения для поля модели через аннотацию PydanticPintQuantity("unit").

🔘Автоматическая конвертация: Если поле ожидает километры (km), а на вход передали строку "12 meters", библиотека проверит размерность и сама пересчитает значение в 0.012 kilometer. Ошибочные размерности (например, попытка передать секунды вместо метров) приведут к ошибке валидации.

🔘Полная поддержка сериализации: Корректно выгружается в структуры Python и JSON через стандартные методы Pydantic V2 (model_dump() и model_dump_json()).

🔘Современный синтаксис: Не требует наследования от специальных базовых классов — работает прямо внутри стандартного pydantic.BaseModel.

🔻Пример использования:
from typing import Annotated
from pydantic import BaseModel
from pydantic_pint import PydanticPintQuantity
from pint import Quantity

class Coordinates(BaseModel):
latitude: Annotated[Quantity, PydanticPintQuantity("deg")]
longitude: Annotated[Quantity, PydanticPintQuantity("deg")]
# Поле ожидает километры:
altitude: Annotated[Quantity, PydanticPintQuantity("km")]

# Передаем высоту в метрах — библиотека сконвертирует её сама:
coord = Coordinates(
latitude="39.905705 deg",
longitude="-75.166519 deg",
altitude="12 meters",
)

print(coord.altitude)
# -> <Quantity(0.012, 'kilometer')>

# Сериализация в JSON
print(coord.model_dump_json())
# -> {"latitude":"39.905705 degree","longitude":"-75.166519 degree","altitude":"0.012 kilometer"}


📦Установка:
pip install pydantic-pint


#Python #Pydantic #Pint #DataValidation #DataScience #Physics #Engineering #Backend #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/tylerh111/pydantic-pint
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥1