Vyriešené: NumPy packbits Code Packed pole pozdĺž osi 1

NumPy je výkonná knižnica v Pythone, ktorá sa široko používa na numerické výpočty v poliach a maticových dátových štruktúrach. Jednou z mnohých funkcií, ktoré ponúka, je packbits, ktorý vám umožňuje efektívne kódovať binárne dáta pozdĺž určenej osi. V tomto článku preskúmame použitie funkcie packbits NumPy pozdĺž osi 1 a rozoberieme jej techniky a aplikácie. Po ceste sa tiež ponoríme do súvisiacich knižníc a funkcionalít.

Pochopenie funkcie balíkov NumPy

packbits Funkcia v NumPy je nástroj určený na kompresiu binárnych údajov zbalením skupín bitov. Je to užitočné najmä pri práci s veľkými súbormi binárnych údajov, pretože môže výrazne znížiť využitie pamäte a zlepšiť efektivitu vášho kódu. Táto funkcia funguje pozdĺž špecifikovanej osi, čo vám umožňuje ovládať smer, v ktorom sú bity zbalené.

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)

Vyššie uvedený kód demonštruje použitie funkcie packbits na zbalenie binárnych dát pozdĺž osi 1. Zadaním osi 1 dávame NumPy pokyn, aby zbalil bity pozdĺž stĺpcov vstupného poľa.

Vysvetlenie kódu krok za krokom

1. Najprv importujeme knižnicu NumPy s aliasom „np“:

import numpy as np

2. Ďalej vytvoríme príklad 2D binárneho dátového poľa, kde každý prvok môže byť 0 alebo 1:

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

3. Potom zavoláme funkciu packbits na zabalenie binárnych dát pozdĺž osi 1:

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

4. Nakoniec vytlačíme výsledné zbalené dátové pole:

print(packed_data)

Výstupom tohto kódu bude 2D pole obsahujúce zbalené binárne dáta:

[[179 241]
[137 17]]

To znamená, že pôvodné binárne dáta boli efektívne zbalené pozdĺž špecifikovanej osi, čo umožňuje znížiť využitie pamäte a zvýšiť výkon.

Podobné funkcie v súvisiacich knižniciach

Okrem balíkových bitov existujú aj ďalšie funkcie a knižnice, ktoré ponúkajú podobné funkcie. Niekoľko príkladov:

Vstavaná knižnica binascii v Pythone

binascii knižnica je súčasťou štandardnej knižnice Pythonu a poskytuje metódy na konverziu medzi binárnymi a rôznymi binárnymi reprezentáciami kódovanými v ASCII. Jednou z funkcií, ktoré ponúka, je hexlify, ktorý možno použiť na konverziu binárnych údajov na reprezentáciu hexadecimálneho reťazca.

import binascii

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

V tomto príklade sa funkcia binascii.hexlify používa na konverziu objektu typu bytes obsahujúceho binárne údaje na reprezentáciu hexadecimálneho reťazca.

bitarray knižnica

Ďalšou knižnicou, ktorá môže byť užitočná pre prácu s binárnymi údajmi, je bitarray knižnica. Táto knižnica poskytuje efektívnu dátovú štruktúru bitového poľa, ktorú možno použiť na manipuláciu a ukladanie veľkých bitových sekvencií.

from bitarray import bitarray

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

V tomto príklade vytvoríme objekt bitarray z binárneho reťazca a potom použijeme metódu tobytes na získanie zbalených údajov ako objektu bajtov.

Na záver, funkcia Packbits NumPy je cenným nástrojom na kódovanie binárnych údajov pozdĺž špecifikovanej osi, čo v konečnom dôsledku zefektívňuje váš kód a šetrí pamäť. Okrem toho existujú ďalšie knižnice a funkcie, ako napríklad knižnica binascii a knižnica bitarray, ktoré vám môžu tiež pomôcť pri práci s binárnymi údajmi.

Súvisiace príspevky:

Pridať komentár