Επιλύθηκε: NumPy packbits Συσκευασμένος κώδικας πίνακας κατά μήκος του άξονα 1

Η NumPy είναι μια ισχυρή βιβλιοθήκη στην Python που χρησιμοποιείται ευρέως για αριθμητικούς υπολογισμούς σε δομές δεδομένων πίνακα και μήτρας. Μία από τις πολλές λειτουργίες που προσφέρει είναι πακέτα, το οποίο σας επιτρέπει να κωδικοποιείτε αποτελεσματικά δυαδικά δεδομένα κατά μήκος ενός καθορισμένου άξονα. Σε αυτό το άρθρο, θα εξερευνήσουμε τη χρήση της συνάρτησης packbits του NumPy κατά μήκος του άξονα 1 και θα συζητήσουμε τις τεχνικές και τις εφαρμογές της. Στην πορεία, θα εμβαθύνουμε επίσης σε σχετικές βιβλιοθήκες και λειτουργίες.

Κατανόηση της λειτουργίας packbits του NumPy

Η πακέτα Η λειτουργία στο NumPy είναι ένα εργαλείο που έχει σχεδιαστεί για τη συμπίεση δυαδικών δεδομένων πακετάροντας ομάδες bit μαζί. Είναι ιδιαίτερα χρήσιμο όταν εργάζεστε με μεγάλα σύνολα δυαδικών δεδομένων, καθώς μπορεί να μειώσει σημαντικά τη χρήση της μνήμης και να βελτιώσει την αποτελεσματικότητα του κώδικά σας. Αυτή η λειτουργία λειτουργεί κατά μήκος ενός καθορισμένου άξονα, ο οποίος σας επιτρέπει να ελέγχετε την κατεύθυνση στην οποία συσκευάζονται τα bit.

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 να συσκευάσει τα bit κατά μήκος των στηλών του πίνακα εισόδου.

Βήμα-βήμα επεξήγηση του κώδικα

1. Αρχικά, εισάγουμε τη βιβλιοθήκη NumPy με το ψευδώνυμο "np":

import numpy as np

2. Στη συνέχεια, δημιουργούμε ένα παράδειγμα δυαδικού πίνακα δεδομένων 2D, όπου κάθε στοιχείο μπορεί να είναι 0 ή 1:

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)

Η έξοδος αυτού του κώδικα θα είναι ένας πίνακας 2D που θα περιέχει τα συσκευασμένα δυαδικά δεδομένα:

[[179 241]
[137 17]]

Αυτό σημαίνει ότι τα αρχικά δυαδικά δεδομένα έχουν συσκευαστεί αποτελεσματικά κατά μήκος του καθορισμένου άξονα, επιτρέποντας μειωμένη χρήση μνήμης και αυξημένη απόδοση.

Παρόμοιες λειτουργίες σε σχετικές βιβλιοθήκες

Πέρα από τα packbit, υπάρχουν και άλλες λειτουργίες και βιβλιοθήκες που προσφέρουν παρόμοιες λειτουργίες. Μερικά παραδείγματα περιλαμβάνουν:

Η ενσωματωμένη βιβλιοθήκη binascii της Python

Η binascii Η βιβλιοθήκη είναι μέρος της τυπικής βιβλιοθήκης της Python και παρέχει μεθόδους για τη μετατροπή μεταξύ δυαδικών και διαφόρων δυαδικών αναπαραστάσεων με κωδικοποίηση ASCII. Μία από τις λειτουργίες που προσφέρει είναι εξέλιξη, το οποίο μπορεί να χρησιμοποιηθεί για τη μετατροπή δυαδικών δεδομένων σε δεκαεξαδική παράσταση συμβολοσειράς.

import binascii

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

Σε αυτό το παράδειγμα, η συνάρτηση binascii.hexlify χρησιμοποιείται για τη μετατροπή ενός αντικειμένου bytes που περιέχει δυαδικά δεδομένα σε μια δεκαεξαδική παράσταση συμβολοσειράς.

βιβλιοθήκη bitarray

Μια άλλη βιβλιοθήκη που μπορεί να είναι χρήσιμη για την εργασία με δυαδικά δεδομένα είναι η bitarray βιβλιοθήκη. Αυτή η βιβλιοθήκη παρέχει μια αποτελεσματική δομή δεδομένων πίνακα bit που μπορεί να χρησιμοποιηθεί για τον χειρισμό και την αποθήκευση μεγάλων ακολουθιών bit.

from bitarray import bitarray

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

Σε αυτό το παράδειγμα, δημιουργούμε ένα αντικείμενο bitarray από μια δυαδική συμβολοσειρά και, στη συνέχεια, χρησιμοποιούμε τη μέθοδο tobytes για να λάβουμε τα συσκευασμένα δεδομένα ως αντικείμενο bytes.

Συμπερασματικά, η συνάρτηση packbits του NumPy είναι ένα πολύτιμο εργαλείο για την κωδικοποίηση δυαδικών δεδομένων κατά μήκος ενός καθορισμένου άξονα, καθιστώντας τελικά τον κώδικά σας πιο αποτελεσματικό και εξοικονομώντας μνήμη. Επιπλέον, υπάρχουν άλλες βιβλιοθήκες και λειτουργίες, όπως η βιβλιοθήκη binascii και η βιβλιοθήκη bitarray, που μπορούν επίσης να σας βοηθήσουν στην εργασία με δυαδικά δεδομένα.

Σχετικές αναρτήσεις:

Αφήστε ένα σχόλιο