Isonjululwe: Iipakethi zeNumPy Ikhowudi Epakishwe uluhlu oluhambelana nomgca woku-1

I-NumPy yilayibrari enamandla kwiPython esetyenziswa ngokubanzi ukubala kwamanani kwi-array kunye nezakhiwo zedatha ye-matrix. Omnye wemisebenzi emininzi enikezela ngayo iipakethi, ekuvumela ukuba ufakele ikhowudi yedatha yokubini ngokufanelekileyo ecaleni kwe-axis ekhankanyiweyo. Kweli nqaku, siza kuphonononga ukusetyenziswa kweepakethi zeNumPy kunye ne-axis 1, kwaye sixoxe ngobuchule kunye nokusetyenziswa kwayo. Ekuhambeni kwethuba, siya kuphonononga kumathala eencwadi anxulumeneyo kunye nemisebenzi.

Ukuqonda umsebenzi weepakethi zeNumPy

The iipakethi umsebenzi kwiNumPy sisixhobo esiyilelwe ukucinezela idata yokubini ngokupakisha amaqela amasuntswana kunye. Kuluncedo ngakumbi xa usebenza ngeeseti ezinkulu zedatha yokubini, njengoko inokunciphisa kakhulu ukusetyenziswa kwememori kunye nokuphucula ukusebenza kwekhowudi yakho. Lo msebenzi usebenza nge-axis ekhankanyiweyo, ekuvumela ukuba ulawule isalathiso apho amasuntswana apakishwe khona.

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)

Ikhowudi engentla ibonisa ukusetyenziswa komsebenzi wepakethi ukupakisha idatha yokubini kunye ne-axis 1. Ngokukhankanya i-axis 1, siyalela i-NumPy ukuba ipakishe amasuntswana kwimiqolo yoluhlu lwegalelo.

Inkcazo yenyathelo ngenyathelo lekhowudi

1. Okokuqala, singenisa ngaphandle ithala leencwadi leNumPy ngegama elithi “np”:

import numpy as np

2. Okulandelayo, senza umzekelo 2D uluhlu lwedatha yokubini, apho into nganye ingaba ngu-0 okanye u-1:

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

3. Emva koko sibiza umsebenzi wepakethi ukupakisha idatha yokubini kunye ne-axis 1:

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

4. Ekugqibeleni, siprinta uluhlu lwedatha olupakishiweyo oluphumayo:

print(packed_data)

Imveliso yale khowudi iya kuba yi-2D uluhlu oluqulathe idatha yokubini epakishweyo:

[[179]
[137 17]]

Oku kuthetha ukuba idatha yoqobo yokubini ipakishwe ngokufanelekileyo ecaleni kwe-axis ekhankanyiweyo, ivumela usetyenziso olucuthiweyo lwememori kunye nokusebenza okwandisiweyo.

Imisebenzi efanayo kumathala eencwadi anxulumeneyo

Ngaphandle kweepakethi, kukho neminye imisebenzi kunye namathala eencwadi abonelela ngokusebenza okufanayo. Imizekelo embalwa ibandakanya:

Ithala leencwadi lePython eyakhelwe-ngaphakathi

The ibhinascii ithala leencwadi yinxalenye yethala leencwadi eliqhelekileyo lePython kwaye libonelela ngeendlela zokuguqula phakathi kokubini kunye neentlobo ezahlukeneyo zokumelwa kokubini ezifakwe kwi-ASCII. Omnye wemisebenzi enikezelayo yi hexlify, enokusetyenziswa ukuguqula idata yokubini ibe ngumboniso womtya wehexadecimal.

import binascii

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

Kulo mzekelo, umsebenzi we-binascii.hexlify usetyenziselwa ukuguqula into ye-bytes equlethe idatha yokubini ibe ngumboniso womtya we-hexadecimal.

ilayibrari ye-bitarray

Enye ilayibrari enokuba luncedo ekusebenzeni ngedatha yokubini yi i-bitarray ithala leencwadi. Eli thala leencwadi libonelela ngolwakhiwo lwedata olusebenzayo olunokuthi lusetyenziswe ukukhohlisa nokugcina ulandelelwano lwebit enkulu.

from bitarray import bitarray

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

Kulo mzekelo, senza into ye-bitarray kumtya wokubini kwaye emva koko sisebenzise indlela ye-tobytes ukufumana idatha epakishwe njengento ye-bytes.

Ukuqukumbela, umsebenzi we-NumPy's packbits sisixhobo esixabisekileyo sokufaka ikhowudi yedatha yokubini kunye ne-axis echaziweyo, ekugqibeleni yenza ikhowudi yakho isebenze ngakumbi kwaye igcine imemori. Ukongeza, kukho amanye amathala eencwadi kunye nokusebenza, okufana nethala leencwadi le-binascii kunye nelayibrari ye-bitarray, enokukunceda ekusebenzeni ngedatha yokubini.

Izithuba ezihambelanayo:

Shiya Comment