1 điểm bởi GN⁺ 2024-06-17 | 2 bình luận | Chia sẻ qua WhatsApp

Tính năng mới

  • Bổ sung dtype chuỗi độ dài biến thiên mới, StringDType, và namespace numpy.strings cho các thao tác chuỗi.
  • Hỗ trợ float32longdouble trong tất cả các hàm numpy.fft.
  • Hỗ trợ tiêu chuẩn Array API trong namespace numpy chính.

Cải thiện hiệu năng

  • Các hàm sắp xếp (sort, argsort, partition, argpartition) được tăng tốc bằng thư viện Intel x86-simd-sort và Google Highway.
  • Hỗ trợ macOS Accelerate và cung cấp binary wheel cho macOS >=14, giúp cải thiện đáng kể hiệu năng các phép toán đại số tuyến tính.
  • Các thao tác chuỗi độ dài cố định của numpy.char được tăng tốc.
  • Bổ sung API truy vết và kiểm tra mới, opt_func_info, để kiểm tra và sử dụng các kernel theo từng phần cứng.

Cải thiện Python API

  • Phân tách rõ ràng giữa API công khai và không công khai, cùng cấu trúc mô-đun mới.
  • Loại bỏ nhiều hàm và bí danh đã bị phản đối sử dụng, giúp việc học và sử dụng dễ hơn.
  • Bổ sung tên dtype tiêu chuẩn và hàm kiểm tra isdtype mới.

Cải thiện C API

  • Bổ sung C API công khai mới để tạo dtype tùy biến do người dùng định nghĩa.
  • Loại bỏ các hàm và macro cũ, đồng thời ẩn các phần nội bộ không công khai.
  • Các hàm khởi tạo mới: PyArray_ImportNumPyAPIPyUFunc_ImportUFuncAPI.

Hành vi được cải thiện

  • Áp dụng NEP 50 để cải thiện hành vi nâng cấp kiểu, khiến nó chỉ phụ thuộc vào dtype thay vì giá trị dữ liệu của mảng đầu vào.
  • Trên Windows, kiểu số nguyên mặc định được đổi từ int32 sang int64.
  • Số chiều mảng tối đa tăng từ 32 lên 64.

Tài liệu

  • Khả năng điều hướng trong hướng dẫn tham chiếu được cải thiện đáng kể.
  • Tài liệu build từ mã nguồn đã được viết lại hoàn toàn.

Các mục bị loại bỏ khỏi Python API

  • Loại bỏ np.geterrobj, np.seterrobj và đối số từ khóa ufunc liên quan extobj=.
  • Loại bỏ np.cast, thay bằng np.asarray(arg, dtype=dtype).
  • Loại bỏ np.source, thay bằng inspect.getsource.
  • Loại bỏ np.lookfor.
  • Loại bỏ numpy.who, khuyến nghị dùng trình khám phá biến của các IDE như Spyder hoặc Jupyter Notebook.
  • Loại bỏ nhiều hàm và bí danh đã bị phản đối sử dụng.

Ý kiến của GN⁺

  • Cải thiện hiệu năng: Với thuật toán sắp xếp mới và hỗ trợ macOS Accelerate, tốc độ xử lý dữ liệu được kỳ vọng sẽ tăng đáng kể.
  • Dọn dẹp API: Việc loại bỏ các hàm và bí danh đã bị phản đối sử dụng khiến NumPy trở nên trực quan và gọn gàng hơn.
  • Nâng cấp kiểu: Việc áp dụng NEP 50 giúp hành vi nâng cấp kiểu dễ dự đoán hơn. Điều này sẽ giúp giảm các kết quả bất ngờ trong các phép toán dtype hỗn hợp.
  • Cải thiện tài liệu: Những cải tiến ở hướng dẫn tham chiếu và tài liệu build giúp các nhà phát triển dễ hiểu và sử dụng NumPy hơn.
  • Vấn đề tương thích: Do có nhiều thay đổi API, mã hiện có có thể không còn tương thích. Cần tham khảo hướng dẫn migration để cập nhật mã.

2 bình luận

 
eususu 2024-06-18

Chắc sẽ có khá nhiều gói bị xung đột nhỉ..

 
GN⁺ 2024-06-17
Ý kiến Hacker News
  • Cách kết hợp các phép toán phức tạp: Cần một cách đơn giản hơn và dễ nhớ hơn để xây dựng các phép toán không theo từng phần tử. Có quá nhiều cách khác nhau nên lần nào cũng phải học lại.

  • Thay đổi kiểu số nguyên mặc định trên Windows: Trên Windows, kiểu số nguyên mặc định đã được बदल từ int32 sang int64. Điều này tốt vì giờ đã thống nhất với các nền tảng khác.

  • Cập nhật lớn của Numpy: Với những người không thường xuyên trực tiếp dùng Numpy, có thể sẽ không có thay đổi lớn. Chủ yếu họ dùng pandas và scipy, và chỉ dùng các thuật toán của Numpy khi cần.

  • Chu kỳ cập nhật: Mỗi khi có bản cập nhật lớn, họ thường không nâng cấp ngay mà chờ đến khi có phiên bản ổn định hơn.

  • Quản lý phiên bản: Với bản phát hành lớn đầu tiên có thay đổi đáng kể sau 18 năm, có vẻ sẽ tốt hơn nếu tách ra thành một phiên bản mới. Cài bằng pip install numpy2 để không phải lo về khả năng tương thích với các thư viện khác.

  • Vấn đề tương thích gói: Một số gói không được cố định ở phiên bản 1.x nên đang gây ra vấn đề. Có thể tạm thời xử lý bằng pip install numpy==1.*.

  • Liên kết ghi chú phát hành: Cung cấp liên kết đến ghi chú phát hành của Numpy 2.0.0. Ghi chú phát hành Numpy 2.0.0