נפתרה: NumPy packbits מערך ארוז בקוד לאורך ציר 1

NumPy היא ספרייה רבת עוצמה ב-Python שנמצאת בשימוש נרחב לחישובים מספריים במבני נתונים של מערכים ומטריצות. אחת מהפונקציות הרבות שהוא מציע היא packbits, המאפשר לך לקודד נתונים בינאריים ביעילות לאורך ציר מוגדר. במאמר זה, נחקור את השימוש בפונקציית packbits של NumPy לאורך ציר 1, ונדון בטכניקות וביישומים שלה. על הדרך, נעמיק גם בספריות ופונקציונליות קשורות.

הבנת פונקציית ה-packbits של NumPy

אל האני packbits function ב-NumPy הוא כלי שנועד לדחוס נתונים בינאריים על ידי אריזת קבוצות של ביטים יחד. זה שימושי במיוחד כאשר עובדים עם קבוצות גדולות של נתונים בינאריים, מכיוון שהוא יכול להפחית במידה ניכרת את השימוש בזיכרון ולשפר את היעילות של הקוד שלך. פונקציה זו פועלת לאורך ציר מוגדר, המאפשר לך לשלוט בכיוון שבו ארוזים הביטים.

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)

הקוד למעלה מדגים את השימוש בפונקציית packbits כדי לארוז נתונים בינאריים לאורך ציר 1. על ידי ציון ציר 1, אנו מורים ל-NumPy לארוז את הביטים לאורך העמודות של מערך הקלט.

הסבר שלב אחר שלב על הקוד

1. ראשית, אנו מייבאים את ספריית NumPy עם הכינוי "np":

import numpy as np

2. לאחר מכן, אנו יוצרים מערך נתונים בינארי דו-ממדי לדוגמה, שבו כל אלמנט יכול להיות 2 או 0:

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

3. לאחר מכן אנו קוראים לפונקציה packbits כדי לארוז את הנתונים הבינאריים לאורך ציר 1:

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

4. לבסוף, אנו מדפיסים את מערך הנתונים הארוז שהתקבל:

print(packed_data)

הפלט של קוד זה יהיה מערך דו-ממדי המכיל את הנתונים הבינאריים הארוזים:

[[179 241]
[137 17]]

המשמעות היא שהנתונים הבינאריים המקוריים נארזו ביעילות לאורך הציר שצוין, מה שמאפשר שימוש מופחת בזיכרון וביצועים מוגברים.

פונקציות דומות בספריות קשורות

מעבר ל-packbits, יש גם פונקציות וספריות אחרות המציעות פונקציונליות דומות. כמה דוגמאות כוללות:

ספריית binascii המובנית של Python

אל האני binascii library היא חלק מהספרייה הסטנדרטית של Python ומספקת שיטות להמרה בין ייצוגים בינאריים בינאריים למגוון ייצוגים בינאריים מקודדים ASCII. אחת הפונקציות שהוא מציע היא משושה, שבו ניתן להשתמש כדי להמיר נתונים בינאריים לייצוג מחרוזת הקסדצימלית.

import binascii

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

בדוגמה זו, הפונקציה binascii.hexlify משמשת להמרת אובייקט בתים המכיל נתונים בינאריים לייצוג מחרוזת הקסדצימלית.

ספריית bitarray

ספריה נוספת שיכולה להיות שימושית לעבודה עם נתונים בינאריים היא ה ביטרייה סִפְרִיָה. ספרייה זו מספקת מבנה נתונים יעיל של מערך סיביות שניתן להשתמש בו כדי לתפעל ולאחסן רצפי סיביות גדולים.

from bitarray import bitarray

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

בדוגמה זו, אנו יוצרים אובייקט Bitarray ממחרוזת בינארית ולאחר מכן משתמשים בשיטת tobytes כדי להשיג את הנתונים הארוזים כאובייקט בתים.

לסיכום, פונקציית ה-packbits של NumPy היא כלי רב ערך לקידוד נתונים בינאריים לאורך ציר מוגדר, ובסופו של דבר הופכת את הקוד שלך ליעילה יותר וחוסכת זיכרון. בנוסף, ישנן ספריות ופונקציות אחרות, כגון ספריית binascii וספריית bitarray, שיכולות לסייע לך גם בעבודה עם נתונים בינאריים.

הודעות קשורות:

השאירו תגובה