Giới thiệu ngắn gọn về NumPy

Một số kiến ​​thức cơ bản về thư viện NumPy và ufuncs

Photo by Erik Mclean on Unsplash

NumPy là viết tắt của Numerical Python và là một Python thư viện để làm việc với mảng. Với sự trợ giúp của các mảng này, các phần tử từ đại số tuyến tính, chẳng hạn như vectơ và ma trận, có thể được biểu diễn dưới dạng Python. Vì phần lớn thư viện được viết bằng C nên nó có thể thực hiện các phép tính đặc biệt hiệu quả và nhanh chóng ngay cả với các ma trận lớn.

Python cung cấp nhiều cấu trúc dữ liệu có thể được sử dụng để lưu trữ dữ liệu mà không cần thêm thư viện. Tuy nhiên, những cấu trúc này, chẳng hạn như Danh sách Python, chỉ rất kém phù hợp cho các phép toán. Thêm hai danh sách số phần tử theo phần tử có thể nhanh chóng gây bất lợi cho hiệu suất khi xử lý lượng lớn dữ liệu.

Vì lý do này, NumPy đã được phát triển vì nó mang lại khả năng thực hiện các phép tính số một cách nhanh chóng và hiệu quả. Đặc biệt quan trọng là các phép tính từ lĩnh vực đại số tuyến tính, chẳng hạn như phép nhân ma trận.

NumPy, giống như nhiều thư viện khác, có thể được cài đặt trực tiếp từ sổ ghi chép bằng pip. Để thực hiện việc này, hãy sử dụng lệnh “pip install” cùng với tên mô-đun. Trước dòng này phải có dấu chấm than để sổ ghi chép nhận ra đó là lệnh đầu cuối:

Nếu quá trình cài đặt thành công, mô-đun có thể được nhập và sử dụng đơn giản trong sổ ghi chép. Chữ viết tắt “np” thường được sử dụng ở đây để tiết kiệm một ít thời gian trong quá trình lập trình và không phải vào NumPy mỗi lần:

Mảng NumPy là một sự thay thế hợp lệ cho mảng thông thường Danh sách Python. Chúng cung cấp khả năng lưu trữ các bộ sưu tập dữ liệu đa chiều. Trong hầu hết các trường hợp, các số được lưu trữ và các mảng được sử dụng làm vectơ hoặc ma trận. Ví dụ: vectơ một chiều có thể trông như thế này:

Bên cạnh các chức năng khác nhau của mảng NumPy mà chúng tôi sẽ đề cập trong một bài đăng riêng, các chiều có thể có vẫn rất quan trọng để phân biệt:

Các chiều sau đây được phân biệt:

  • 0D - Mảng: Đây đơn giản là một đại lượng vô hướng, tức là một số hoặc một giá trị.
  • 1D - Mảng: Đây là một vectơ, dưới dạng một chuỗi số hoặc giá trị trong một chiều.
  • 2D - Mảng: Loại mảng này là một ma trận, tức là tập hợp của một số mảng 1D.
  • 3D - Mảng: Một số ma trận tạo thành cái gọi là tensor. Chúng tôi đã giải thích những điều này chi tiết hơn trong bài viết của chúng tôi về TensorFlow.

Tùy thuộc vào nguồn, có một số khác biệt cơ bản giữa mảng NumPy và Danh sách Python. Trong số những điều được đề cập phổ biến nhất là:

  1. Tiêu thụ bộ nhớ: Mảng được lập trình theo cách chúng chiếm một phần nhất định của bộ nhớ. Tất cả các phần tử của mảng sau đó được đặt ở đó. Các phần tử của một mặt khác, có thể cách xa nhau trong bộ nhớ. Kết quả là, một tiêu thụ nhiều bộ nhớ hơn một mảng giống hệt nhau.
  2. Tốc độ: Mảng cũng có thể được xử lý nhanh hơn nhiều so với danh sách do mức tiêu thụ bộ nhớ thấp hơn. Điều này có thể tạo ra sự khác biệt đáng kể đối với các đối tượng có vài triệu phần tử.
  3. Chức năng: Mảng cung cấp nhiều chức năng hơn đáng kể, ví dụ: chúng cho phép thực hiện các thao tác theo từng phần tử, trong khi danh sách thì không.

Cái gọi là “Hàm phổ quát” (viết tắt: ufuncs) được sử dụng để không phải thực hiện các hoạt động nhất định theo từng phần tử mà trực tiếp cho toàn bộ mảng. Trong lập trình máy tính, người ta nói đến cái gọi là vector hóa khi các lệnh được thực thi trực tiếp cho toàn bộ vectơ.

Điều này không chỉ nhanh hơn nhiều trong lập trình mà còn dẫn đến tính toán nhanh hơn. Trong NumPy, một số Hàm phổ quát này được cung cấp, có thể được sử dụng cho nhiều hoạt động khác nhau. Trong số những người nổi tiếng nhất là:

  • Với “add()”, bạn có thể tính tổng từng phần tử của mảng.
  • “trừ()” hoàn toàn ngược lại và trừ từng phần tử mảng.
  • “multiply()” nhân hai phần tử mảng với nhau.
  • “matmul()” tạo thành tích ma trận của hai mảng. Lưu ý rằng trong hầu hết các trường hợp, điều này sẽ không cho kết quả giống như “multiply()”.
  • NumPy là viết tắt của Numerical Python và là thư viện Python để làm việc với mảng.
  • Với sự trợ giúp của các mảng này, các phần tử từ đại số tuyến tính, chẳng hạn như vectơ và ma trận, có thể được biểu diễn bằng Python.
  • Vì phần lớn thư viện được viết bằng C nên nó có thể thực hiện các phép tính đặc biệt hiệu quả và nhanh chóng ngay cả với các ma trận lớn.
  • Mảng NumPy có thể so sánh với danh sách Python nhưng vượt trội hơn đáng kể về yêu cầu bộ nhớ và tốc độ xử lý.

Giới thiệu ngắn về NumPy được xuất bản lại từ Nguồn https://towardsdatascience.com/3short-introduction-to-numpy-3a65ec23eaba?source=rss—-7f60cf5620c9—4 qua https://towardsdatascience.com/feed

<!–

->

Dấu thời gian:

Thêm từ Tư vấn chuỗi khối