ΠΠΎΡΡΠ°ΠΏΠ½ΠΎ Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° 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.
Python API ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΏΠΎΠ΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½Π° ΠΏΠΎΠ΄Π΅Π»Π±Π° ΠΏΠΎΠΌΠ΅ΡΡ ΡΠ°Π²Π½ΠΈΡΠ΅ ΠΈ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΈΡΠ΅ 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 Π·Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π½Π° Π½ΠΈΠ·Π° ΡΠΎΡΡΠΈΡΠ°ΡΠ΅, argsort, ΠΏΠ°ΡΡΠΈΡΠΈΡΠ° ΠΈ argpartition, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΡΠΎ ΡΠΈΠΊΡΠ½ΠΈ Π½ΠΈΠ·ΠΈ Π²ΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΎΡ numpy.char ΡΠ΅ Π·Π°Π±ΡΠ·Π°Π½ΠΈ. ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΎ Π΅ Π½ΠΎΠ²ΠΎ API
opt_func_info Π·Π° ΡΠ»Π΅Π΄Π΅ΡΠ΅ ΠΈ ΠΈΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡΠ°.
ΠΠ·Π²ΠΎΡ: opennet.ru
