NumPy သည် array နှင့် matrix ဒေတာတည်ဆောက်ပုံများတွင် ဂဏန်းတွက်ချက်မှုများအတွက် တွင်ကျယ်စွာအသုံးပြုထားသည့် Python ရှိ အားကောင်းသောစာကြည့်တိုက်တစ်ခုဖြစ်သည်။ လုပ်ဆောင်ချက်များစွာထဲမှ တစ်ခုဖြစ်သည်။ ပက်ဘစ်များသတ်မှတ်ထားသော ဝင်ရိုးတစ်လျှောက် binary data ကို ထိထိရောက်ရောက် ကုဒ်လုပ်ခွင့်ပြုသည်။ ဤဆောင်းပါးတွင်၊ ဝင်ရိုး 1 တစ်လျှောက် NumPy ၏ packbits လုပ်ဆောင်ချက်အသုံးပြုမှုကို လေ့လာပြီး ၎င်း၏နည်းပညာများနှင့် အသုံးချမှုများကို ဆွေးနွေးပါမည်။ လမ်းတစ်လျှောက်တွင် ကျွန်ုပ်တို့သည် သက်ဆိုင်ရာ စာကြည့်တိုက်များနှင့် လုပ်ဆောင်ချက်များကို စူးစမ်းလေ့လာပါမည်။
မာတိကာ
NumPy ၏ packbits လုပ်ဆောင်ချက်ကို နားလည်ခြင်း။
အဆိုပါ ပက်ဘစ်များ NumPy ရှိ function သည် ဘစ်များကို အုပ်စုများ စုစည်းခြင်းဖြင့် binary data ကို ချုံ့ရန် ဒီဇိုင်းထုတ်ထားသော tool တစ်ခုဖြစ်သည်။ မှတ်ဉာဏ်အသုံးပြုမှုကို များစွာလျှော့ချနိုင်ပြီး သင့်ကုဒ်၏ထိရောက်မှုကို မြှင့်တင်ပေးနိုင်သောကြောင့် binary data အများအပြားနှင့် အလုပ်လုပ်သောအခါ အထူးအသုံးဝင်ပါသည်။ ဤလုပ်ဆောင်ချက်သည် သတ်မှတ်ထားသော ဝင်ရိုးတစ်လျှောက်တွင် လုပ်ဆောင်ပြီး ဘစ်များထုပ်ပိုးထားသည့် ဦးတည်ရာကို ထိန်းချုပ်နိုင်စေပါသည်။
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)
အထက်ကုဒ်သည် ဝင်ရိုးတစ်လျှောက် binary data များကိုထုပ်ပိုးရန်အတွက် packbits လုပ်ဆောင်ချက်ကိုအသုံးပြုခြင်းကို သရုပ်ပြသည်။ ဝင်ရိုး 1 ကိုသတ်မှတ်ခြင်းဖြင့်၊ input array ၏ကော်လံများတစ်လျှောက် bit များကိုထုပ်ပိုးရန် NumPy ကို ညွှန်ကြားထားပါသည်။
Code ၏ အဆင့်ဆင့် ရှင်းလင်းချက်
1. ပထမဦးစွာ ကျွန်ုပ်တို့သည် NumPy စာကြည့်တိုက်ကို “np” ဟူသောအမည်ဖြင့် တင်သွင်းသည်-
import numpy as np
2. ထို့နောက်၊ ဒြပ်စင်တစ်ခုစီသည် 2 သို့မဟုတ် 0 ဖြစ်နိုင်သည့် ဥပမာ 1D binary data array တစ်ခုကို ဖန်တီးသည်-
binary_data = np.array([[0, 1, 1, 0, 1, 1, 1, 1], [1, 0, 0, 1, 0, 0, 0, 1]])
3. ထို့နောက် ကျွန်ုပ်တို့သည် ဝင်ရိုး 1 တစ်လျှောက် binary data ကိုထုပ်ပိုးရန်အတွက် packbits လုပ်ဆောင်ချက်ကို ခေါ်သည်-
packed_data = np.packbits(binary_data, axis=1)
4. နောက်ဆုံးတွင်၊ ကျွန်ုပ်တို့သည် ရရှိလာသော ထုပ်ပိုးထားသော data array ကို print ထုတ်သည်-
print(packed_data)
ဤကုဒ်၏ထွက်ရှိမှုသည် ထုပ်ပိုးထားသော binary data ပါရှိသော 2D အခင်းအကျင်းတစ်ခု ဖြစ်လိမ့်မည်-
[[၁ဝ၄]
[၁၃၇း၁၇]]
ဆိုလိုသည်မှာ မူရင်း binary ဒေတာကို သတ်မှတ်ထားသော ဝင်ရိုးတစ်လျှောက် ထိရောက်စွာ ထုပ်ပိုးထားပြီး မှတ်ဉာဏ်အသုံးပြုမှု လျှော့ချခြင်းနှင့် စွမ်းဆောင်ရည် တိုးမြှင့်ခြင်းတို့ကို ခွင့်ပြုပေးပါသည်။
packbits များအပြင် အလားတူ လုပ်ဆောင်ချက်များကို ပေးဆောင်သည့် အခြားသော လုပ်ဆောင်ချက်များနှင့် စာကြည့်တိုက်များလည်း ရှိသေးသည်။ ဥပမာအချို့ပါဝင်သည်-
Python ၏ built-in binascii စာကြည့်တိုက်
အဆိုပါ binascii စာကြည့်တိုက်သည် Python ၏ စံပြစာကြည့်တိုက်၏ အစိတ်အပိုင်းဖြစ်ပြီး binary နှင့် အမျိုးမျိုးသော ASCII-encoded binary ကိုယ်စားပြုမှုများကြားသို့ ပြောင်းလဲခြင်းနည်းလမ်းများကို ပံ့ပိုးပေးပါသည်။ ၎င်းပေးဆောင်သည့်လုပ်ဆောင်ချက်များထဲမှ တစ်ခုဖြစ်သည်။ ချီးမြှောက်ပါ။binary data ကို hexadecimal string ကိုယ်စားပြုမှုအဖြစ်သို့ ပြောင်းလဲရန် အသုံးပြုနိုင်သည်။
import binascii binary_data = b'x00x01x01x00' hex_data = binascii.hexlify(binary_data) print(hex_data)
ဤဥပမာတွင်၊ binascii.hexlify လုပ်ဆောင်ချက်ကို binary data ပါရှိသော bytes အရာဝတ္ထုတစ်ခုကို hexadecimal string ကိုယ်စားပြုမှုအဖြစ်သို့ ပြောင်းလဲရန်အတွက် အသုံးပြုပါသည်။
bitarray စာကြည့်တိုက်
binary data နှင့်အလုပ်လုပ်ရန်အသုံးဝင်သောနောက်ထပ်စာကြည့်တိုက်တစ်ခုဖြစ်သည်။ bitarray စာကြည့်တိုက်။ ဤစာကြည့်တိုက်သည် ကြီးမားသောဘစ်အစီအစဥ်များကို စီမံခန့်ခွဲရန်နှင့် သိမ်းဆည်းရန်အတွက် အသုံးပြုနိုင်သည့် ထိရောက်သောဘစ်အာရေးဒေတာဖွဲ့စည်းပုံကို ပံ့ပိုးပေးပါသည်။
from bitarray import bitarray binary_data = '01101111 10010001' bit_array = bitarray(binary_data) packed_data = bit_array.tobytes() print(packed_data)
ဤဥပမာတွင်၊ ကျွန်ုပ်တို့သည် binary string တစ်ခုမှ bitarray object တစ်ခုကို ဖန်တီးပြီး bytes အရာဝတ္ထုအဖြစ် packed data ကိုရယူရန် tobytes နည်းလမ်းကို အသုံးပြုပါသည်။
နိဂုံးချုပ်အားဖြင့်၊ NumPy ၏ packbits လုပ်ဆောင်ချက်သည် သတ်မှတ်ထားသော ဝင်ရိုးတစ်လျှောက် binary data ကို encoding အတွက် အဖိုးတန်ကိရိယာတစ်ခုဖြစ်ပြီး နောက်ဆုံးတွင် သင်၏ကုဒ်ကို ပိုမိုထိရောက်စေပြီး မှတ်ဉာဏ်ကို သိမ်းဆည်းစေသည်။ ထို့အပြင်၊ binascii စာကြည့်တိုက်နှင့် bitarray စာကြည့်တိုက်ကဲ့သို့သော အခြားသော စာကြည့်တိုက်များနှင့် လုပ်ဆောင်နိုင်စွမ်းများ ရှိပြီး binary data နှင့် အလုပ်လုပ်ရာတွင်လည်း ကူညီပေးနိုင်ပါသည်။