Quay lại Khóa học
AI018 Professional

Hướng dẫn người dùng NumPy

Một cái nhìn tổng quan toàn diện và hướng dẫn kỹ thuật giới thiệu về NumPy, bao gồm cài đặt, thao tác mảng, truy cập chỉ mục, phát sóng và tích hợp với C/C++.

4.9
15.0h
891 học viên
0 lượt thích
Trí tuệ nhân tạo
Bắt đầu học

Tổng quan khóa học

📚 Tổng quan Nội dung

Một bản tổng quan giới thiệu toàn diện và hướng dẫn kỹ thuật về NumPy, bao gồm cài đặt, thao tác mảng, truy cập, phát triển (broadcasting), và tích hợp với C/C++.

Thành thạo nền tảng tính toán khoa học trong Python với hướng dẫn chính thức của NumPy.

Tác giả: Cộng đồng NumPy

Ghi nhận: Được viết bởi cộng đồng NumPy

🎯 Mục tiêu Học tập

  1. Định nghĩa NumPy và xác định vai trò của nó trong hệ sinh thái Python khoa học.
  2. Giải thích tại sao NumPy nhanh hơn đáng kể so với các vòng lặp Python thông thường bằng khái niệm vector hóa.
  3. Thực hiện lệnh cài đặt cho nhiều môi trường khác nhau bao gồm Pip, Conda và Raspberry Pi.
  4. Nhận diện và diễn giải các thuộc tính cốt lõi ndarray như ndim, shapedtype.
  5. Thực hiện tạo và thao tác mảng bằng các hàm như linspace, reshape, vstackhstack.
  6. Áp dụng các phép toán từng phần tử, hàm phổ biến (ufuncs) và bộ giải phương trình đại số tuyến tính cho dữ liệu số.
  7. Quản lý độ chính xác dữ liệu và giảm thiểu lỗi tràn số bằng các kiểu số nguyên và công cụ thông tin (iinfo, finfo) của NumPy.
  8. Thực hiện nhập dữ liệu linh hoạt từ đĩa sử dụng genfromtxt với dấu phân cách tùy chỉnh, tiêu đề và lựa chọn cột.
  9. Áp dụng Quy tắc Phát triển Chung để dự đoán và kiểm soát tương tác giữa các mảng có hình dạng khác nhau.
  10. Quản lý tham chiếu bộ nhớ và tránh "bẫy" trong các lớp con ndarray tùy chỉnh bằng thuộc tính .base.

🔹 Bài học 1: Giới thiệu và Thiết lập Môi trường

Tổng quan: Bài học này giới thiệu NumPy như thư viện nền tảng cho tính toán khoa học trong Python, giải thích lợi thế hiệu suất của nó thông qua vector hóa. Người học sẽ học cách cài đặt thư viện trên nhiều nền tảng khác nhau (Windows, Raspberry Pi, Conda, PyCharm) và khắc phục những trở ngại cài đặt phổ biến như ImportError bằng cách quản lý biến môi trường và các phụ thuộc hệ thống.

Kết quả học tập:

  • Định nghĩa NumPy và xác định vai trò của nó trong hệ sinh thái Python khoa học.
  • Giải thích tại sao NumPy nhanh hơn đáng kể so với các vòng lặp Python thông thường bằng khái niệm vector hóa.
  • Thực hiện lệnh cài đặt cho nhiều môi trường khác nhau bao gồm Pip, Conda và Raspberry Pi.

🔹 Bài học 2: Cơ bản Cốt lõi và Thao tác Mảng

Tổng quan: Bài học này cung cấp một giới thiệu toàn diện về đối tượng ndarray của NumPy, bao gồm các thuộc tính cốt lõi, phương pháp tạo ra và các phép toán cơ bản. Nó mở rộng sang các chủ đề nâng cao như truy cập linh hoạt (dựa trên boolean và số nguyên), thay đổi hình dạng, và các thủ tục đại số tuyến tính thiết yếu. Sau khi hoàn thành module này, người học sẽ có thể lưu trữ, chuyển đổi và phân tích hiệu quả các cấu trúc dữ liệu đa chiều.

Kết quả học tập:

  • Nhận diện và diễn giải các thuộc tính cốt lõi ndarray như ndim, shapedtype.
  • Thực hiện tạo và thao tác mảng bằng các hàm như linspace, reshape, vstackhstack.
  • Áp dụng các phép toán từng phần tử, hàm phổ biến (ufuncs) và bộ giải phương trình đại số tuyến tính cho dữ liệu số.

🔹 Bài học 3: Xử lý Dữ liệu Nâng cao và Phát triển (Broadcasting)

Tổng quan: Bài học này đề cập đến các cơ chế nâng cao của NumPy, tập trung vào việc quản lý chính xác kiểu dữ liệu, xử lý tràn số, và các thao tác I/O phức tạp sử dụng genfromtxt. Người học sẽ nắm vững logic nội bộ của Phát triển (broadcasting) cho các phép toán số học, những chi tiết về thứ tự byte ở cấp độ bộ nhớ, và việc tạo các mảng có cấu trúc/đối tượng cho dữ liệu không đồng nhất. Các phần cuối cùng mô tả khả năng mở rộng của NumPy thông qua các container mảng tùy chỉnh và các giao thức chính thức cho việc kế thừa ndarray.

Kết quả học tập:

  • Quản lý độ chính xác dữ liệu và giảm thiểu lỗi tràn số bằng các kiểu số nguyên và công cụ thông tin (iinfo, finfo) của NumPy.
  • Thực hiện nhập dữ liệu linh hoạt từ đĩa sử dụng genfromtxt với dấu phân cách tùy chỉnh, tiêu đề và lựa chọn cột.
  • Áp dụng Quy tắc Phát triển Chung để dự đoán và kiểm soát tương tác giữa các mảng có hình dạng khác nhau.

🔹 Bài học 4: Ngoại lệ Số học và Giao tiếp Ngôn ngữ

Tổng quan: Bài học này khám phá những chi tiết nâng cao trong việc kế thừa NumPy, đặc biệt là về quản lý bộ nhớ và khả năng tương thích ngược. Ngoài ra, nó xem xét cách NumPy thực hiện chuẩn số học IEEE 754 để xử lý các giá trị đặc biệt và ngoại lệ số học, kết thúc bằng các cơ chế giao tiếp giữa các mảng NumPy với các ngôn ngữ cấp thấp như C, C++ và Fortran.

Kết quả học tập:

  • Quản lý tham chiếu bộ nhớ và tránh "bẫy" trong các lớp con ndarray tùy chỉnh bằng thuộc tính .base.
  • Đảm bảo tính tương thích ngược trong các lớp con bằng cách triển khai đúng __array_wrap__ và các ký hiệu phương thức.
  • Nhận diện và thao tác các giá trị đặc biệt IEEE 754 (NaN, Inf) và cấu hình hành vi ngoại lệ số học toàn cục.

🔹 Bài học 5: Mở rộng NumPy với C-API

Tổng quan: Bài học này khám phá các phương pháp khác nhau để mở rộng chức năng của NumPy bằng cách giao tiếp với các ngôn ngữ biên dịch như C, C++ và Fortran. Nó bao gồm các công cụ tự động như f2py và Cython, cách bao bọc thủ công bằng ctypes, việc tạo các hàm phổ biến hiệu suất cao (ufuncs), và các kỹ thuật nâng cao của C-API để duyệt mảng, kiểu dữ liệu tùy chỉnh, và kế thừa ndarray.

Kết quả học tập:

  • So sánh và triển khai các phương pháp khác nhau để "ghép nối" mã đã biên dịch với Python (f2py, Cython, ctypes).
  • Xây dựng và đăng ký các hàm phổ biến NumPy tùy chỉnh (ufuncs) cho kiểu dữ liệu đơn và nhiều kiểu, bao gồm cả mảng có cấu trúc.
  • Sử dụng C-API của NumPy để duyệt mảng hiệu quả, xử lý phát triển (broadcasting), và định nghĩa kiểu dữ liệu hoặc lớp con ndarray do người dùng xác định.