Анализ данных (Data analysis)
45.3K subscribers
2.12K photos
232 videos
1 file
1.91K links
Data science, наука о данных.

@haarrp - админ

@itchannels_telegram - 🔥 главное в ит

@ai_machinelearning_big_data - ML

@machinelearning_interview - вопросы с собесдований по Ml

РКН: clck.ru/3FmyAp
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Визуализация стохастической модели пробоя диэлектрика (Ref: Fractal Dimension of Dielectric Breakdown

🖥 Код

#python, #numpy #matplotlib

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
По умолчанию трансформаторы #sklearn возвращают массив #NumPy.

Начиная с версии scikit-learn 1.3.2, можно использовать метод 𝐬𝐞𝐭_𝐨𝐮𝐭𝐩𝐮𝐭 для получения результатов в виде #pandas DataFrame.

Этот метод также может быть применен в рамках конвейера scikit-learn.

@data_analysis_ml
Forwarded from Machinelearning
🌟 Numpy QuadDType: Четырехкратная точность в Python.

NumPy-QuadDType (numpy_quaddtype) — это реализация пользовательского типа данных (dtype) для NumPy, которая обеспечивает настоящую арифметику с плавающей точкой четверной точности на разных платформах.

Проект направлен на решение давних проблем с np.longdouble, предлагая согласованный, высокоточный тип с плавающей точкой независимо от базовой архитектуры системы, а также обеспечивая обратную совместимость long double.

Ядро numpy_quaddtype построено вокруг на двух ключевых компонентов:

🟢скалярный тип QuadPrecision, представляющий отдельные скаляры четверной точности;

🟢тип данных NumPy QuadPrecDType, позволяющий использовать эти скаляры четверной точности в массивах и операциях NumPy.

Отличительная черта numpy_quaddtype - его подход с двойным бэкэндом:

🟠SLEEF (библиотека SIMD для оценки элементарных функций): этот бэкэнд использует тип Sleef_quad из библиотеки SLEEF, предоставляя настоящую 128-битную учетверенную точность.

🟠Long Double: этот бэкэнд использует собственный тип long double, который может обеспечивать точность до 80 бит в некоторых системах, обеспечивая совместимость с np.longdouble.

Гибкость архитектуры numpy_quaddtype наследуется от компонентов ее ядра: QuadPrecisionObject, хамелеоноподобная структура, которая может переключаться между формами:

typedef union {  
Sleef_quad sleef_value;
long double longdouble_value;
} quad_value;

typedef struct {
PyObject_HEAD
quad_value value;
QuadBackendType backend;
} QuadPrecisionObject;


QuadPrecDTypeObject, который действует как мост, позволяя высокоточным числам гармонично работать в массивах и операциях NumPy:

typedef struct {  
PyArray_Descr base;
QuadBackendType backend;
} QuadPrecDTypeObject;


Он позволяет переключаться между бекэндами Sleef_quad (для SLEEF) и long double во время выполнения:

>>> import numpy as np  
>>> import numpy_quaddtype as npq

# Using SLEEF backend (default)
>>> x = npq.QuadPrecision(3.5)
>>> x = npq.QuadPrecision(3.5, backend='sleef')
>>> repr(x)
QuadPrecision('3.5e+000', backend='sleef')

# Using longdouble backend
>>> y = npq.QuadPrecision(2.5, backend='longdouble')
>>> repr(y)
QuadPrecision('2.5e+000', backend='longdouble')

# Creating a NumPy array with QuadPrecision dtype
>>> z = np.array([x, x], dtype=npq.QuadPrecDType()) # SLEEF
>>> print(z)
[QuadPrecision('3.5e+000', backend='sleef')
QuadPrecision('3.5e+000', backend='sleef')]

>>> z = np.array([y, y], dtype=npq.QuadPrecDType("longdouble")) # longdouble
>>> print(z)
[QuadPrecision('2.5e+000', backend='longdouble')
QuadPrecision('2.5e+000', backend='longdouble')]


В тестах numpy_quaddtype с бэкендом SLEEF показал точность в 34 десятичных знаков. ULP (единица в младшем разряде) для основных арифметических операций ≤ 0,5000000001, а для трансцендентных функций ≤ 1,0.

C бэкендом Long Double показал точность, зависящую от платформы: 18-19 десятичных знаков в Linux и 15-17 в Windows.

В настоящее время ведётся подготовка к выпуску numpy_quaddtype в виде пакета Python, доступного через PyPI и conda. Также планируется направить предложение NEP для интеграции numpy_quaddtype в экосистему NumPy и рассмотреть TLFloat как потенциальную замену SLEEF в будущих версиях.

▶️Читать полную статью с демо возможностей numpy_quaddtype на примере визуализации множества Мандельброта при экстремальном увеличении и моделирование квантового гармонического осциллятора для двухатомных молекул.


@ai_machinelearning_big_data

#AI #ML #DS #Python #NumPy
Please open Telegram to view this post
VIEW IN TELEGRAM