Rilis perpustakaan Python untuk komputasi ilmiah NumPy 2.0.0 tersedia, berfokus pada bekerja dengan array dan matriks multidimensi, dan juga menyediakan banyak koleksi fungsi dengan implementasi berbagai algoritma yang terkait dengan penggunaan matriks. NumPy adalah salah satu perpustakaan paling populer yang digunakan untuk perhitungan ilmiah. Kode proyek ditulis dengan Python menggunakan optimasi dalam C dan didistribusikan di bawah lisensi BSD.
NumPy 2.0.0 menandai rilis signifikan pertama sejak tahun 2006.
Di versi baru, selain fitur baru dan optimalisasi kinerja, perubahan telah dilakukan pada ABI, Python API, dan C-API, yang melanggar kompatibilitas ke belakang. Misalnya, perpustakaan SciPy yang dikompilasi dengan NumPy 1.x akan memerlukan kompilasi ulang agar dapat berfungsi dengan NumPy 2.0. Dalam beberapa kasus, perubahan kode mungkin diperlukan untuk menggunakan NumPy 2.0 dalam aplikasi.
Наиболее крупное нарушение связано с сохранением точности скалярных выражений, например, «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).
Beberapa definisi di C-API telah diganti atau dihapus, misalnya struktur PyArray_Descr telah diubah. Jumlah maksimum dimensi dan argumen yang ditetapkan melalui makro NPY_MAXDIMS dan NPY_MAXARGS telah ditingkatkan menjadi 64. Semua tipe kompleks telah dialihkan menggunakan tipe standar dari spesifikasi C99 (cfloat_t, cdouble_t, clongdouble_t). Menambahkan C API baru untuk membuat tipe d khusus. Fungsi inisialisasi baru yang disederhanakan PyArray_ImportNumPyAPI dan PyUFunc_ImportUFuncAPI telah diusulkan.
API Python memberikan pemisahan yang lebih eksplisit antara API publik dan pribadi dan memperkenalkan struktur modul baru. Sekitar 100 fungsi, modul, dan konstanta telah dipindahkan dari namespace "np" utama, tidak digunakan lagi, atau dihapus.
Membersihkan namespace np.lib. Jumlah objek di namespace utama telah berkurang sebesar 10%, dan di namespace numpy.lib sebesar 80%. Namespace numpy.core telah dipindahkan ke pribadi. Menghapus beberapa metode dari kelas np.ndarray dan np.generic. Membuat namespace baru numpy.stringsf dengan operasi string.
Fitur baru termasuk dukungan untuk tipe float32 dan longdouble di semua fungsi numpy.fft, dukungan untuk API Array standar di namespace utama, namespace baru, dan tipe untuk string dengan panjang variabel. Optimalisasi kinerja telah dilakukan menggunakan perpustakaan Intel x86-simd-sort dan Google Highway untuk fungsi string sortir, argsort, partisi dan argpartition, operasi dengan string tetap dalam modul numpy.char telah dipercepat. API baru ditambahkan
opt_func_info untuk penelusuran dan introspeksi.
Sumber: opennet.ru
