Išspręsta: NumPy paketo bitų kodas Supakuotas masyvas išilgai 1 ašies

„NumPy“ yra galinga „Python“ biblioteka, plačiai naudojama masyvo ir matricos duomenų struktūrų skaitiniams skaičiavimams. Viena iš daugelio siūlomų funkcijų yra pakuotės bitai, kuri leidžia efektyviai koduoti dvejetainius duomenis išilgai nurodytos ašies. Šiame straipsnyje mes išnagrinėsime NumPy paketų funkcijos naudojimą 1 ašyje ir aptarsime jos metodus bei taikymą. Pakeliui taip pat gilinsimės į susijusias bibliotekas ir funkcijas.

„NumPy“ paketų funkcijos supratimas

Šios pakuotės bitai NumPy funkcija yra įrankis, skirtas suspausti dvejetainius duomenis pakuojant bitų grupes kartu. Tai ypač naudinga dirbant su dideliais dvejetainių duomenų rinkiniais, nes gali labai sumažinti atminties naudojimą ir pagerinti kodo efektyvumą. Ši funkcija veikia pagal nurodytą ašį, kuri leidžia valdyti bitų pakavimo kryptį.

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)

Aukščiau pateiktas kodas parodo paketų bitų funkcijos naudojimą dvejetainiams duomenims pakuoti išilgai 1 ašies. Nurodydami 1 ašį, nurodome NumPy supakuoti bitus išilgai įvesties masyvo stulpelių.

Žingsnis po žingsnio kodo paaiškinimas

1. Pirmiausia importuojame NumPy biblioteką su slapyvardžiu „np“:

import numpy as np

2. Toliau sukuriame 2D dvejetainių duomenų masyvo pavyzdį, kuriame kiekvienas elementas gali būti 0 arba 1:

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

3. Tada iškviečiame funkciją packbits, kad supakuotų dvejetainius duomenis išilgai 1 ašies:

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

4. Galiausiai išspausdiname gautą supakuotų duomenų masyvą:

print(packed_data)

Šio kodo išvestis bus 2D masyvas, kuriame yra supakuoti dvejetainiai duomenys:

[[179]
[137 17]]

Tai reiškia, kad pradiniai dvejetainiai duomenys buvo efektyviai supakuoti išilgai nurodytos ašies, o tai leidžia sumažinti atminties naudojimą ir padidinti našumą.

Panašios funkcijos susijusiose bibliotekose

Be paketų, yra ir kitų funkcijų ir bibliotekų, siūlančių panašias funkcijas. Keletas pavyzdžių:

Python integruota binascii biblioteka

Šios binascii biblioteka yra standartinės Python bibliotekos dalis ir pateikia dvejetainių ir įvairių ASCII koduotų dvejetainių vaizdų konvertavimo metodus. Viena iš jo siūlomų funkcijų yra šešiakampis, kuris gali būti naudojamas dvejetainiams duomenims konvertuoti į šešioliktainę eilutę.

import binascii

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

Šiame pavyzdyje funkcija binascii.hexlify naudojama baitų objektui, kuriame yra dvejetainių duomenų, konvertuoti į šešioliktainę eilutės atvaizdą.

Bitarray biblioteka

Kita biblioteka, kuri gali būti naudinga dirbant su dvejetainiais duomenimis, yra bitarray biblioteka. Ši biblioteka suteikia efektyvią bitų masyvo duomenų struktūrą, kurią galima naudoti didelėms bitų sekoms valdyti ir saugoti.

from bitarray import bitarray

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

Šiame pavyzdyje mes sukuriame bitarray objektą iš dvejetainės eilutės ir tada naudojame tobaitų metodą, kad gautume supakuotus duomenis kaip baitų objektą.

Apibendrinant galima pasakyti, kad „NumPy“ paketų bitų funkcija yra vertingas įrankis dvejetainiams duomenims koduoti pagal nurodytą ašį, todėl jūsų kodas tampa efektyvesnis ir taupoma atmintis. Be to, yra ir kitų bibliotekų ir funkcijų, tokių kaip binascii biblioteka ir bitarray biblioteka, kurios taip pat gali padėti dirbti su dvejetainiais duomenimis.

Susijusios naujienos:

Palikite komentarą