Nalutas: NumPy packbits Code Packed array kasama ang axis 1

Ang NumPy ay isang malakas na library sa Python na malawakang ginagamit para sa mga numerical computations sa array at matrix data structures. Isa sa maraming mga pag-andar na inaalok nito ay packbits, na nagbibigay-daan sa iyong mag-encode ng binary data nang mahusay sa isang tinukoy na axis. Sa artikulong ito, tutuklasin natin ang paggamit ng function ng packbits ng NumPy kasama ang axis 1, at tatalakayin ang mga diskarte at aplikasyon nito. Kasabay nito, susuriin din natin ang mga kaugnay na library at functionality.

Pag-unawa sa function ng packbits ng NumPy

Ang packbits Ang function sa NumPy ay isang tool na idinisenyo upang i-compress ang binary data sa pamamagitan ng pagsasama-sama ng mga grupo ng mga bit. Ito ay partikular na kapaki-pakinabang kapag nagtatrabaho sa malalaking set ng binary data, dahil maaari itong lubos na mabawasan ang paggamit ng memorya at mapabuti ang kahusayan ng iyong code. Gumagana ang function na ito sa isang tinukoy na axis, na nagbibigay-daan sa iyong kontrolin ang direksyon kung saan naka-pack ang mga bit.

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)

Ang code sa itaas ay nagpapakita ng paggamit ng packbits function upang mag-pack ng binary data kasama ang axis 1. Sa pamamagitan ng pagtukoy sa axis 1, inutusan namin ang NumPy na i-pack ang mga bit sa mga column ng input array.

Hakbang-hakbang na pagpapaliwanag ng code

1. Una, ini-import namin ang NumPy library na may alias na “np”:

import numpy as np

2. Susunod, gumawa kami ng halimbawang 2D binary data array, kung saan ang bawat elemento ay maaaring 0 o 1:

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

3. Pagkatapos ay tinawag namin ang packbits function upang i-pack ang binary data kasama ang axis 1:

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

4. Sa wakas, nai-print namin ang nagreresultang naka-pack na data array:

print(packed_data)

Ang output ng code na ito ay isang 2D array na naglalaman ng naka-pack na binary data:

[[179 241]
[137 17]]

Nangangahulugan ito na ang orihinal na binary data ay mahusay na naka-pack kasama ang tinukoy na axis, na nagbibigay-daan para sa pinababang paggamit ng memorya at pagtaas ng pagganap.

Mga katulad na function sa mga kaugnay na library

Higit pa sa mga packbits, mayroon ding iba pang mga function at library na nag-aalok ng mga katulad na functionality. Ang ilang mga halimbawa ay kinabibilangan ng:

Ang built-in na binascii library ng Python

Ang binasci Ang library ay bahagi ng standard library ng Python at nagbibigay ng mga pamamaraan para sa pag-convert sa pagitan ng binary at iba't ibang ASCII-encoded binary representation. Isa sa mga function na inaalok nito ay hexlify, na maaaring magamit upang i-convert ang binary data sa isang representasyon ng hexadecimal string.

import binascii

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

Sa halimbawang ito, ang function na binascii.hexlify ay ginagamit upang i-convert ang isang byte object na naglalaman ng binary data sa isang representasyon ng hexadecimal string.

bitarray library

Ang isa pang library na maaaring maging kapaki-pakinabang para sa pagtatrabaho sa binary data ay ang bitarray aklatan. Nagbibigay ang library na ito ng mahusay na istraktura ng data ng bit array na maaaring magamit upang manipulahin at mag-imbak ng malalaking bit sequence.

from bitarray import bitarray

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

Sa halimbawang ito, lumikha kami ng isang bitarray na bagay mula sa isang binary string at pagkatapos ay ginagamit ang paraan ng tobytes upang makuha ang naka-pack na data bilang isang bagay na bytes.

Sa konklusyon, ang function ng NumPy's packbits ay isang mahalagang tool para sa pag-encode ng binary data sa isang tinukoy na axis, sa huli ay ginagawang mas mahusay ang iyong code at nakakatipid ng memory. Bukod pa rito, may iba pang mga library at functionality, tulad ng binary library at ang bitarray library, na maaari ring tumulong sa iyo sa pagtatrabaho sa binary data.

Kaugnay na mga post:

Mag-iwan ng komento