ΠΡΠ΅Π΄Π»Π°Π³Π° ΡΠ΅ Π²Π΅ΡΡΠΈΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Python Π·Π° Π½Π°ΡΡΠ½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ NumPy 2.0.0, ΡΠΎΠΊΡΡΠΈΡΠ°Π½Π° Π²ΡΡΡ Ρ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΠΈ ΠΌΠ°ΡΠΈΠ²ΠΈ ΠΈ ΠΌΠ°ΡΡΠΈΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ° Π³ΠΎΠ»ΡΠΌΠ° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ°ΡΡΠΈΡΠΈ. NumPy Π΅ Π΅Π΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° Π½Π°ΡΡΠ½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Python Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² C ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ 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. ΠΡΠΎΠΌΠ΅Π½Π΅Π½ΠΈ ΡΠ° ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°. Windows β Π½Π° 64-Π±ΠΈΡΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° 64-Π±ΠΈΡΠΎΠ² ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½ ΡΠΈΠΏ, Π° Π½Π° 32-Π±ΠΈΡΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ - 32-Π±ΠΈΡΠΎΠ² ΡΠΈΠΏ (ΠΏΡΠ΅Π΄ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΡΡ long ΠΎΡ C-ΡΠΈΠΏ, Π½ΠΎ ΡΠ΅Π³Π° Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΡΡ np.intp).
ΠΡΠΊΠΎΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΠΈ Π² C-API ΡΠ° Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° PyArray_Descr Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½Π°. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡΡ Π±ΡΠΎΠΉ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ, Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΡΡΠ΅Π· ΠΌΠ°ΠΊΡΠΎΡΠΈΡΠ΅ NPY_MAXDIMS ΠΈ NPY_MAXARGS, Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ Π΄ΠΎ 64. ΠΡΠΈΡΠΊΠΈ ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΡΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π»ΠΈ ΠΊΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΎΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° C99 (cfloat_t, cdouble_t, clongdouble_t). ΠΠΎΠ±Π°Π²Π΅Π½ Π½ΠΎΠ² C API Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ dtypes. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΠΎΠΏΡΠΎΡΡΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ PyArray_ImportNumPyAPI ΠΈ PyUFunc_ImportUFuncAPI.
API Π½Π° Python ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΠΎ-ΡΡΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΈ ΡΠ°ΡΡΠ½ΠΈΡΠ΅ API ΠΈ Π²ΡΠ²Π΅ΠΆΠ΄Π° Π½ΠΎΠ²Π° ΡΡΡΡΠΊΡΡΡΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»Π°. ΠΠΊΠΎΠ»ΠΎ 100 ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ ΡΠ° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ΠΈ ΠΈΠ·Π²ΡΠ½ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ° "np", ΠΎΡΡ
Π²ΡΡΠ»Π΅Π½ΠΈ ΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π°ΡΠΈ.
ΠΠΎΡΠΈΡΡΠ΅Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° np.lib. ΠΡΠΎΡΡ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ Ρ 10%, Π° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° numpy.lib Ρ 80%. ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° numpy.core Π΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ΠΎ Π½Π° ΡΠ°ΡΡΠ½ΠΎ. ΠΡΠ΅ΠΌΠ°Ρ
Π½Π°ΡΠΈ ΡΠ° Π½ΡΠΊΠΎΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΎΡ ΠΊΠ»Π°ΡΠΎΠ²Π΅ΡΠ΅ np.ndarray ΠΈ np.generic. Π‘ΡΠ·Π΄Π°Π΄Π΅ Π½ΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° numpy.stringsf Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π½ΠΈΠ·ΠΎΠ²Π΅.
ΠΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΈΠΏΠΎΠ²Π΅ float32 ΠΈ longdouble Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° numpy.fft, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ Array API Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°, Π½ΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π·Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π΄ΡΠ»ΠΆΠΈΠ½Π°. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π΅ ΠΈΠ·Π²ΡΡΡΠ΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ Intel x86-simd-sort ΠΈ Google Highway Π·Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ sort, argsort, partition ΠΈ argpartition, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Ρ ΡΠΈΠΊΡΠΈΡΠ°Π½ΠΈ Π½ΠΈΠ·ΠΎΠ²Π΅ Π² ΠΌΠΎΠ΄ΡΠ»Π° numpy.char ΡΠ° ΡΡΠΊΠΎΡΠ΅Π½ΠΈ. ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² API
opt_func_info Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ ΠΈ ΠΈΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
