Đã giải quyết: NumPy packbits Mã Mảng được đóng gói dọc theo trục 1

NumPy là một thư viện mạnh mẽ trong Python được sử dụng rộng rãi để tính toán số trong cấu trúc dữ liệu mảng và ma trận. Một trong nhiều chức năng nó cung cấp là gói bit, cho phép bạn mã hóa dữ liệu nhị phân một cách hiệu quả dọc theo một trục xác định. Trong bài viết này, chúng ta sẽ khám phá việc sử dụng hàm packbits của NumPy dọc theo trục 1, đồng thời thảo luận về các kỹ thuật và ứng dụng của nó. Đồng thời, chúng tôi cũng sẽ đi sâu vào các thư viện và chức năng liên quan.

Hiểu chức năng packbits của NumPy

Sản phẩm gói bit chức năng trong NumPy là một công cụ được thiết kế để nén dữ liệu nhị phân bằng cách đóng gói các nhóm bit lại với nhau. Nó đặc biệt hữu ích khi làm việc với các tập dữ liệu nhị phân lớn, vì nó có thể giảm đáng kể việc sử dụng bộ nhớ và cải thiện hiệu quả mã của bạn. Chức năng này hoạt động dọc theo một trục xác định, cho phép bạn kiểm soát hướng mà các bit được đóng gói.

import numpy as np

# Example binary data array
binary_data = np.array([[0, 1, 1, 0, 1, 1, 1, 1],
                        [1, 0, 0, 1, 0, 0, 0, 1]])

packed_data = np.packbits(binary_data, axis=1)
print(packed_data)

Đoạn mã trên minh họa việc sử dụng hàm packbits để đóng gói dữ liệu nhị phân dọc theo trục 1. Bằng cách chỉ định trục 1, chúng tôi đang hướng dẫn NumPy đóng gói các bit dọc theo các cột của mảng đầu vào.

Giải thích từng bước về mã

1. Đầu tiên, chúng tôi nhập thư viện NumPy với bí danh “np”:

import numpy as np

2. Tiếp theo, chúng tôi tạo một mảng dữ liệu nhị phân 2D ví dụ, trong đó mỗi phần tử có thể là 0 hoặc 1:

binary_data = np.array([[0, 1, 1, 0, 1, 1, 1, 1],
                        [1, 0, 0, 1, 0, 0, 0, 1]])

3. Sau đó, chúng tôi gọi hàm packbits để đóng gói dữ liệu nhị phân dọc theo trục 1:

packed_data = np.packbits(binary_data, axis=1)

4. Cuối cùng, chúng tôi in mảng dữ liệu được đóng gói kết quả:

print(packed_data)

Đầu ra của mã này sẽ là một mảng 2D chứa dữ liệu nhị phân được đóng gói:

[[179 241]
[137 17]]

Điều này có nghĩa là dữ liệu nhị phân ban đầu đã được đóng gói một cách hiệu quả dọc theo trục đã chỉ định, cho phép giảm mức sử dụng bộ nhớ và tăng hiệu suất.

Các chức năng tương tự trong các thư viện liên quan

Ngoài packbits, còn có các chức năng và thư viện khác cung cấp các chức năng tương tự. Một vài ví dụ bao gồm:

Thư viện binascii tích hợp sẵn của Python

Sản phẩm nhị phân thư viện là một phần của thư viện chuẩn của Python và cung cấp các phương thức để chuyển đổi giữa các biểu diễn nhị phân được mã hóa ASCII và các biểu diễn nhị phân khác nhau. Một trong những chức năng nó cung cấp là lục hóa, có thể được sử dụng để chuyển đổi dữ liệu nhị phân thành biểu diễn chuỗi thập lục phân.

import binascii

binary_data = b'x00x01x01x00'
hex_data = binascii.hexlify(binary_data)
print(hex_data)

Trong ví dụ này, hàm binascii.hexlify được sử dụng để chuyển đổi đối tượng byte chứa dữ liệu nhị phân thành biểu diễn chuỗi thập lục phân.

thư viện bitarray

Một thư viện khác có thể hữu ích để làm việc với dữ liệu nhị phân là mảng bit thư viện. Thư viện này cung cấp cấu trúc dữ liệu mảng bit hiệu quả có thể được sử dụng để thao tác và lưu trữ các chuỗi bit lớn.

from bitarray import bitarray

binary_data = '01101111 10010001'
bit_array = bitarray(binary_data)
packed_data = bit_array.tobytes()
print(packed_data)

Trong ví dụ này, chúng tôi tạo một đối tượng bitarray từ một chuỗi nhị phân và sau đó sử dụng phương thức tobytes để lấy dữ liệu được đóng gói dưới dạng đối tượng byte.

Tóm lại, chức năng packbits của NumPy là một công cụ có giá trị để mã hóa dữ liệu nhị phân dọc theo một trục cụ thể, cuối cùng làm cho mã của bạn hiệu quả hơn và tiết kiệm bộ nhớ. Ngoài ra, còn có các thư viện và chức năng khác, chẳng hạn như thư viện binascii và thư viện bitarray, cũng có thể hỗ trợ bạn làm việc với dữ liệu nhị phân.

bài viết liên quan:

Để lại một bình luận