1 poin oleh GN⁺ 2024-06-17 | 2 komentar | Bagikan ke WhatsApp

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

 
eususu 2024-06-18

Sepertinya akan ada banyak paket yang bentrok..

 
GN⁺ 2024-06-17
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 numpy2 akan 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