Fitur baru
- Menambahkan dtype string panjang variabel baru,
StringDType, serta namespace numpy.strings untuk operasi string.
- Dukungan
float32 dan longdouble di semua fungsi numpy.fft.
- Dukungan standar API array di namespace utama
numpy.
Peningkatan performa
- Fungsi pengurutan (
sort, argsort, partition, argpartition) dipercepat menggunakan pustaka Intel x86-simd-sort dan Google Highway.
- Dukungan macOS Accelerate dan penyediaan binary wheel untuk macOS >=14, yang sangat meningkatkan performa operasi aljabar linear.
- Operasi string panjang tetap
numpy.char dipercepat.
- Menambahkan API pelacakan dan inspeksi baru,
opt_func_info, untuk memeriksa dan menggunakan kernel spesifik perangkat keras.
Peningkatan API Python
- Pemisahan yang lebih jelas antara API publik dan nonpublik, dengan struktur modul baru.
- Banyak fungsi dan alias usang dihapus, sehingga lebih mudah dipelajari dan digunakan.
- Menambahkan nama dtype standar dan fungsi pemeriksaan baru
isdtype.
Peningkatan C API
- Menambahkan C API publik baru untuk membuat dtype kustom.
- Menghapus fungsi dan makro lama, serta menyembunyikan internal nonpublik.
- Fungsi inisialisasi baru:
PyArray_ImportNumPyAPI dan PyUFunc_ImportUFuncAPI.
Perilaku yang ditingkatkan
- Mengadopsi NEP 50 untuk memperbaiki perilaku promosi tipe, sehingga hanya bergantung pada dtype, bukan pada nilai data array masukan.
- Di Windows, tipe integer default berubah dari
int32 menjadi int64.
- Jumlah maksimum dimensi array meningkat dari 32 menjadi 64.
Dokumentasi
- Navigasi panduan referensi ditingkatkan secara signifikan.
- Dokumentasi build dari source ditulis ulang sepenuhnya.
Item API Python yang dihapus
np.geterrobj, np.seterrobj, dan argumen kata kunci ufunc terkait extobj= dihapus.
np.cast dihapus, digantikan oleh np.asarray(arg, dtype=dtype).
np.source dihapus, digantikan oleh inspect.getsource.
np.lookfor dihapus.
numpy.who dihapus; disarankan menggunakan penjelajah variabel pada IDE seperti Spyder atau Jupyter Notebook.
- Berbagai fungsi dan alias usang dihapus.
Opini GN⁺
- Peningkatan performa: Algoritme pengurutan baru dan dukungan macOS Accelerate diperkirakan akan sangat meningkatkan kecepatan pemrosesan data.
- Perapian API: Penghapusan fungsi dan alias usang membuat penggunaan NumPy lebih intuitif dan ringkas.
- Promosi tipe: Dengan adopsi NEP 50, perilaku promosi tipe menjadi lebih dapat diprediksi. Ini akan membantu mengurangi hasil tak terduga dalam operasi dtype campuran.
- Peningkatan dokumentasi: Perbaikan pada panduan referensi dan dokumentasi build memudahkan developer memahami dan menggunakan NumPy.
- Masalah kompatibilitas: Karena ada banyak perubahan API, kode yang sudah ada mungkin tidak kompatibel. Perlu merujuk ke panduan migrasi untuk memperbarui kode.
2 komentar
Sepertinya akan ada banyak paket yang bentrok..
Opini Hacker News
Cara menggabungkan operasi kompleks: Diperlukan cara yang lebih sederhana dan mudah diingat untuk menyusun operasi non-elemen-per-elemen. Ada terlalu banyak metode berbeda sehingga sulit dan harus dipelajari ulang setiap kali.
Perubahan tipe integer default di Windows: Di Windows, tipe integer default berubah dari int32 menjadi int64. Ini bagus karena kini selaras dengan platform lain.
Pembaruan utama NumPy: Bagi pengguna yang tidak terlalu sering memakai NumPy secara langsung, mungkin tidak ada perubahan besar. Mereka lebih sering menggunakan pandas dan scipy, dan hanya memakai algoritme NumPy saat diperlukan.
Siklus pembaruan: Setiap kali ada pembaruan besar, lebih memilih untuk tidak langsung upgrade dan menunggu sampai versi yang stabil keluar.
Manajemen versi: Untuk rilis mayor pertama dengan perubahan besar dalam 18 tahun, sepertinya lebih baik mem-fork ke versi baru. Instalasi lewat
pip install numpy2akan bagus agar tidak perlu khawatir soal kompatibilitas dengan library lain.Masalah kompatibilitas paket: Beberapa paket tidak dikunci ke versi 1.x sehingga menimbulkan masalah. Ini bisa diatasi sementara dengan
pip install numpy==1.*.Tautan catatan rilis: Menyediakan tautan ke catatan rilis NumPy 2.0.0. Catatan rilis NumPy 2.0.0