Vydání Python knihovny pro vědecké výpočty NumPy 2.0.0

Byla vydána verze Python knihovny pro vědecké výpočty NumPy 2.0.0, která je zaměřena na práci s vícerozměrnými poli a maticemi a také poskytuje rozsáhlou kolekci funkcí s implementací různých algoritmů souvisejících s použitím matic. NumPy je jednou z nejžádanějších knihoven používaných pro vědecké výpočty. Kód projektu je napsán v jazyce Python s optimalizacemi v jazyce C a je distribuován pod licencí BSD.

NumPy 2.0.0 je označován jako první významná verze od roku 2006.
V nové verzi byly kromě nových funkcí a optimalizace výkonu provedeny změny v ABI, Python API a C-API, které narušují zpětnou kompatibilitu. Například knihovna SciPy sestavená s NumPy 1.x pro práci s NumPy 2.0 bude vyžadovat překompilaci. V některých případech může být pro použití NumPy 2.0 v aplikacích nutné provést změny v kódu.

Největší narušení je spojeno se zachováním přesnosti škálárních výrazů, například „np.float32(3) + 3“ nyní vrátí hodnotu s typem float32, nikoli float64, a v výrazech s více typy bude pro výsledek použit typ s nejvyšší přesností, tj. „np.array([3], dtype=np.float32) + np.float64(3)“ vrátí hodnotu s typem float64. Byly změněny celočíselné typy používané ve výchozím nastavení na platformě Windows – na 64bitových systémech je nyní použit 64bitový celočíselný typ, na 32bitových je použit 32bitový (dříve byl použit typ odpovídající C-type long, nyní je ekvivalentem np.intp).

Některé definice v C-API byly nahrazeny nebo odstraněny, například byla změněna struktura PyArray_Descr. Maximální počet dimenzí a argumentů, které jsou nastaveny prostřednictvím makra NPY_MAXDIMS a NPY_MAXARGS, byl zvýšen na 64. Všechny komplexní typy byly převedeny na použití standardních typů podle specifikace C99 (cfloat_t, cdouble_t, clongdouble_t). Bylo přidáno nové C API pro vytváření vlastních dtype. Byly navrženy nové zjednodušené funkce inicializace PyArray_ImportNumPyAPI a PyUFunc_ImportUFuncAPI.

V Python API je nyní zajištěno jasnější oddělení mezi veřejným a soukromým API, byla navržena nová struktura modulů. Přibližně 100 funkcí, modulů a konstant bylo vyňato z hlavního jmenného prostoru „np“, označeno jako zastaralé nebo odstraněno.
Prostor jmen np.lib byl upraven. Počet objektů v hlavním prostoru jmen byl snížen o 10 %, zatímco v prostoru jmen numpy.lib o 80 %. Bylo převedeno na privátní prostor jmen numpy.core. Některé metody byly odstraněny z tříd np.ndarray a np.generic. Nový prostor jmen numpy.stringsf byl vytvořen pro operace se stringy.

Mezi novými možnostmi lze zmínit podporu typů float32 a longdouble ve všech funkcích numpy.fft, podporu standardního API Array v hlavním prostoru jmen, nový prostor jmen a typy pro proměnlivé délkové stringy. Byla provedena optimalizace výkonu pomocí knihoven Intel x86-simd-sort a Google Highway pro stringové funkce sort, argsort, partition a argpartition, zrychleny byly operace s fixními stringy v modulu numpy.char. Bylo přidáno nové API
opt_func_info pro trasování a introspekci.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster