تم الحل: مجموعة NumPy Packbits ذات الأكواد المحزمة على طول المحور 1

NumPy هي مكتبة قوية في Python تُستخدم على نطاق واسع للحسابات الرقمية في هياكل بيانات المصفوفات والمصفوفات. إحدى الوظائف العديدة التي يقدمها هي باكبيتس، والذي يسمح لك بتشفير البيانات الثنائية بكفاءة على طول محور محدد. في هذه المقالة ، سوف نستكشف استخدام وظيفة حزم NumPy على طول المحور 1 ، ومناقشة تقنياتها وتطبيقاتها. على طول الطريق ، سوف نتعمق أيضًا في المكتبات والوظائف ذات الصلة.

فهم وظيفة حزم NumPy

باكبيتس الوظيفة في 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]]

هذا يعني أن البيانات الثنائية الأصلية تمت تعبئتها بكفاءة على طول المحور المحدد ، مما يسمح بتقليل استخدام الذاكرة وزيادة الأداء.

وظائف مماثلة في المكتبات ذات الصلة

بخلاف الحزم ، هناك أيضًا وظائف ومكتبات أخرى تقدم وظائف مماثلة. تتضمن بعض الأمثلة ما يلي:

مكتبة binascii المدمجة في بايثون

بيناسكي المكتبة هي جزء من مكتبة Python القياسية وتوفر طرقًا للتحويل بين التمثيلات الثنائية الثنائية والمختلفة بترميز ASCII. إحدى الوظائف التي يقدمها هي تجسيد، والتي يمكن استخدامها لتحويل البيانات الثنائية إلى تمثيل سلسلة سداسية عشرية.

import binascii

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

في هذا المثال ، يتم استخدام دالة binascii.hexlify لتحويل كائن بايت يحتوي على بيانات ثنائية إلى تمثيل سلسلة سداسية عشرية.

مكتبة bitarray

مكتبة أخرى يمكن أن تكون مفيدة للعمل مع البيانات الثنائية هي 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 ، والتي يمكن أن تساعدك أيضًا في العمل مع البيانات الثنائية.

الوظائف ذات الصلة:

اترك تعليق