NumPy on võimas Pythoni teek, mida kasutatakse laialdaselt numbriliste arvutuste tegemiseks massiivide ja maatriksite andmestruktuurides. Üks paljudest selle pakutavatest funktsioonidest on packbits , mis võimaldab teil binaarandmeid tõhusalt kodeerida piki määratud telge. Selles artiklis uurime NumPy packbits funktsiooni kasutamist piki telge 1 ning arutame selle tehnikaid ja rakendusi. Lisaks süveneme ka seotud teekidesse ja funktsionaalsustesse.
NumPy pakibittide funktsiooni mõistmine
NumPy funktsioon packbits on tööriist , mis on loodud binaarandmete tihendamiseks bitirühmade kokkupakkimise teel. See on eriti kasulik suurte binaarandmete komplektidega töötamisel, kuna see võib oluliselt vähendada mälukasutust ja parandada koodi efektiivsust. See funktsioon töötab mööda kindlaksmääratud telge, mis võimaldab teil juhtida bittide pakkimise suunda.
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)
Ülaltoodud kood demonstreerib funktsiooni packbits kasutamist binaarandmete pakkimiseks piki 1. telge. 1. telje määramisega anname NumPyle käsu pakkida bitid piki sisendmassiivi veerge.
Koodi samm-sammult selgitus
1. Esiteks impordime NumPy teegi varjunimega “np”:
import numpy as np
2. Järgmiseks loome 2D-binaarandmete massiivi näite, kus iga element võib olla 0 või 1:
binary_data = np.array([[0, 1, 1, 0, 1, 1, 1, 1],
[1, 0, 0, 1, 0, 0, 0, 1]])
3. Seejärel kutsume funktsiooni packbits, et pakkida binaarandmed piki 1. telge:
packed_data = np.packbits(binary_data, axis=1)
4. Lõpuks prindime saadud pakitud andmemassiivi:
print(packed_data)
Selle koodi väljundiks on 2D massiiv, mis sisaldab pakitud binaarandmeid:
[[179 241]
[137 17]]
See tähendab, et algsed binaarandmed on tõhusalt pakitud mööda määratud telge, mis võimaldab vähendada mälukasutust ja suurendada jõudlust.
Sarnased funktsioonid seotud teekides
Lisaks pakettbittidele on ka muid funktsioone ja teeke, mis pakuvad sarnaseid funktsioone. Mõned näited hõlmavad järgmist:
Pythoni sisseehitatud binascii teek
Binascii teek on osa Pythoni standardteegist ja pakub meetodeid binaar- ja erinevate ASCII-kodeeringuga binaaresituste vahel teisendamiseks. Üks selle pakutavatest funktsioonidest on hexlify , mida saab kasutada binaarandmete teisendamiseks heksadetsimaalseks stringiesituseks.
import binascii binary_data = b'x00x01x01x00' hex_data = binascii.hexlify(binary_data) print(hex_data)
Selles näites kasutatakse funktsiooni binascii.hexlify binaarandmeid sisaldava baitide objekti teisendamiseks kuueteistkümnendsüsteemi stringi esituseks.
bitarray raamatukogu
Teine teek, mis võib olla kasulik binaarandmetega töötamisel, on bitimassiivi teek. See teek pakub tõhusat bitimassiivi andmestruktuuri, mida saab kasutada suurte bitijadade töötlemiseks ja salvestamiseks.
from bitarray import bitarray binary_data = '01101111 10010001' bit_array = bitarray(binary_data) packed_data = bit_array.tobytes() print(packed_data)
Selles näites loome binaarstringist bitarray-objekti ja kasutame seejärel pakitud andmete hankimiseks baitide objektina meetodit tobytes.
Kokkuvõtteks võib öelda, et NumPy pakibittide funktsioon on väärtuslik tööriist binaarandmete kodeerimiseks mööda määratud telge, muutes lõpuks teie koodi tõhusamaks ja säästes mälu. Lisaks on ka teisi teeke ja funktsioone, nagu binascii teek ja bitarray teek, mis võivad samuti aidata teil binaarandmetega töötada.