ΠΠΎΡΡΡΠΏΠ΅Π½ Π΅ ΡΠ΅Π»ΠΈΠ· Π½Π° 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-Π±ΠΈΡΠΎΠ² (ΠΏΠΎ-ΡΠ°Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ Π½Π° C ΡΠΈΠΏΠ° 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
