Kuxazululiwe: I-NumPy packbits Ikhodi Ipakishwe amalungu afana ne-eksisi 1

I-NumPy iwumtapo wezincwadi onamandla ku-Python osetshenziswa kabanzi ekubalweni kwezinombolo kuhlu lwezakhiwo zedatha ye-matrix. Omunye wemisebenzi eminingi ewunikezayo ngu amaphakethe, okukuvumela ukuthi ufake ikhodi kanambambili ngendlela efanele eksisi eshiwo. Kulesi sihloko, sizohlola ukusetshenziswa kwamaphakethe we-NumPy ku-axis 1, futhi sixoxe ngamasu kanye nokusetshenziswa kwayo. Njengoba siqhubeka, sizophinde sihlole imitapo yolwazi ehlobene nokusebenza kwayo.

Ukuqonda umsebenzi wamaphakethe we-NumPy

The amaphakethe umsebenzi ku-NumPy iyithuluzi elakhelwe ukucindezela idatha kanambambili ngokupakisha amaqembu amabhithi ndawonye. Iwusizo ikakhulukazi lapho usebenza namasethi amakhulu edatha kanambambili, njengoba inganciphisa kakhulu ukusetshenziswa kwememori futhi ithuthukise ukusebenza kahle kwekhodi yakho. Lo msebenzi usebenza nge-eksisi ethile, ekuvumela ukuthi ulawule lapho amabhithi 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)

Ikhodi engenhla ibonisa ukusetshenziswa komsebenzi wamaphakethe ukupakisha idatha kanambambili ku-eksisi 1. Ngokucacisa i-eksisi 1, siyala i-NumPy ukuthi ipakishe izingcezu kumakholomu wohlelo lokokufaka.

Incazelo yesinyathelo ngesinyathelo sekhodi

1. Okokuqala, singenisa umtapo wolwazi weNumPy ngegama elithi “np”:

import numpy as np

2. Okulandelayo, sidala isibonelo sohlu lwedatha kanambambili ye-2D, lapho isici ngasinye singaba ngu-0 noma 1:

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

3. Bese sibiza umsebenzi we-packbits ukupakisha idatha kanambambili ku-eksisi 1:

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

4. Ekugcineni, siphrinta uhlu oluphelele lwedatha oluphumayo:

print(packed_data)

Okukhishwayo kwale khodi kuzoba amalungu afanayo angu-2D aqukethe idatha kanambambili epakishiwe:

[[179]
[137 17]]

Lokhu kusho ukuthi idatha yokuqala kanambambili ipakishwe kahle ku-eksisi eshiwo, okuvumela ukusetshenziswa kwememori okuncishisiwe kanye nokusebenza okwandisiwe.

Imisebenzi efanayo kumalabhulali ahlobene

Ngaphandle kwamaphakethe, kukhona neminye imisebenzi nemitapo yolwazi ehlinzeka ngokusebenza okufanayo. Izibonelo ezimbalwa zifaka:

Umtapo wolwazi we-binascii owakhelwe ngaphakathi wePython

The i-binascii umtapo wolwazi uyingxenye yomtapo wolwazi ojwayelekile we-Python futhi uhlinzeka ngezindlela zokuguqula phakathi kwezethulo kanambambili ezifakwe ikhodi ehlukahlukene ye-ASCII. Omunye wemisebenzi ewunikezayo ngu hexlify, engasetshenziswa ukuguqula idatha kanambambili ibe isethulo seyunithi yezinhlamvu ze-hexadecimal.

import binascii

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

Kulesi sibonelo, umsebenzi we-binascii.hexlify usetshenziselwa ukuguqula into yamabhayithi equkethe idatha kanambambili ibe isethulo seyunithi yezinhlamvu eyi-hexadecimal.

umtapo wezincwadi we-bitarray

Omunye umtapo wezincwadi ongaba usizo ekusebenzeni ngedatha kanambambili i i-bitarray umtapo wolwazi. Lo mtapo wezincwadi uhlinzeka ngesakhiwo sedatha ye-bit engase isetshenziselwe ukukhohlisa nokugcina ukulandelana kwamabhithi amakhulu.

from bitarray import bitarray

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

Kulesi sibonelo, sakha into ye-btarray kusuka kuyunithi yezinhlamvu kanambambili bese sisebenzisa indlela ye-tobytes ukuze sithole idatha egcwele njengento yamabhayithi.

Sengiphetha, umsebenzi wamaphakethe we-NumPy uyithuluzi elibalulekile lokufaka ikhodi kanambambili ku-eksisi ecacisiwe, ekugcineni kwenze ikhodi yakho isebenze kahle futhi ilondoloze inkumbulo. Ukwengeza, kukhona amanye amalabhulali nokusebenza, okufana nelabhulali ye-binascii kanye nelabhulali ye-bitarray, engakusiza futhi ekusebenzeni ngedatha kanambambili.

Okuthunyelwe okuhlobene:

Shiya amazwana