ΠΠΎΡΡΡΠΏΠ΅Π½ ΡΠ΅Π»ΠΈΠ· Python-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ Π½Π°ΡΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ NumPy 2.0.0, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΠΈ ΠΌΠ°ΡΡΠΈΡΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ Π±ΠΎΠ»ΡΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΡ. NumPy ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π΄Π»Ρ Π½Π°ΡΡΠ½ΡΡ ΡΠ°ΡΡΡΡΠΎΠ². ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Python Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ BSD.
NumPy 2.0.0 ΠΎΡΠΌΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΡΠΉ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅Π»ΠΈΠ· Ρ 2006 Π³ΠΎΠ΄Π°.
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΠΌΠΈΠΌΠΎ Π½ΠΎΠ²ΡΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ABI, Python API ΠΈ C-API, Π½Π°ΡΡΡΠ°ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° SciPy ΡΠΎΠ±ΡΠ°Π½Π½Π°Ρ Ρ NumPy 1.x Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ NumPy 2.0 ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ»ΡΡΠ°ΡΡ
Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ NumPy 2.0 Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΠΎΠ΅ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠΊΠ°Π»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, «np.float32(3) + 3» ΡΠ΅ΠΏΠ΅ΡΡ Π²Π΅ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠΈΠΏΠΎΠΌ float32, Π° Π½Π΅ float64, Π° Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΠΈΠΏ Ρ Π½Π°ΠΈΠ²ΡΡΡΠ΅ΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ, Ρ.Π΅. «np.array([3], dtype=np.float32) + np.float64(3)» Π²Π΅ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠΈΠΏΠΎΠΌ float64. ΠΠ·ΠΌΠ΅Π½Π΅Π½Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π° ΠΏΠ»Π°ΡΡoΡΠΌΠ΅ Windows — Π½Π° 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ ΡΠ΅Π»ΡΠΉ ΡΠΈΠΏ, Π° Π½Π° 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ — 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ (ΡΠ°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π°Π½Π°Π»ΠΎΠ³ Π‘ΠΈ-ΡΠΈΠΏΠ° long, Π° ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ np.intp).
ΠΠ°ΠΌΠ΅Π½Π΅Π½Ρ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π² C-API, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° ΡΡΡΡΠΊΡΡΡΠ° PyArray_Descr. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Π²ΡΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ΅ ΡΠ΅ΡΠ΅Π· ΠΌΠ°ΠΊΡΠΎΡΡ NPY_MAXDIMS ΠΈ NPY_MAXARGS, ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΎ Π΄ΠΎ 64. ΠΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Ρ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΈΠ· ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ C99 (cfloat_t, cdouble_t, clongdouble_t). ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ C API Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ dtype. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΡΠΏΡΠΎΡΡΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ PyArray_ImportNumPyAPI ΠΈ PyUFunc_ImportUFuncAPI.
Π Python API ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΈ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌΠΈ API, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π½ΠΎΠ²Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠΊΠΎΠ»ΠΎ 100 ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π²ΡΠ½Π΅ΡΠ΅Π½Ρ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΡΠ½ «np», ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Ρ.
ΠΠΎΡΠΈΡΠ΅Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½ np.lib. Π§ΠΈΡΠ»ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΡΠ½ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΎ Π½Π° 10%, Π° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΡΠ½ numpy.lib — Π½Π° 80%. ΠΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½ΠΎ Π² ΡΠ°Π·ΡΡΠ΄ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΡ
ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½ numpy.core. Π£Π΄Π°Π»Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ· ΠΊΠ»Π°ΡΡΠΎΠ² np.ndarray ΠΈ np.generic. Π‘ΠΎΠ·Π΄Π°Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½ numpy.stringsf ΡΠΎ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ.
ΠΠ· Π½ΠΎΠ²ΡΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠΈΠΏΠΎΠ² float32 ΠΈ longdouble Π²ΠΎ Π²ΡΠ΅Ρ
ΡΡΠ½ΠΊΡΠΈΡΡ
numpy.fft, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ API Array Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΡΠ½, Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½ ΠΈ ΡΠΈΠΏΡ Π΄Π»Ρ ΡΡΡΠΎΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ. ΠΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Intel x86-simd-sort ΠΈ Google Highway Π΄Π»Ρ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ sort, argsort, partition ΠΈ argpartition, ΡΡΠΊΠΎΡΠ΅Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ numpy.char. ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ API
opt_func_info Π΄Π»Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΈΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru