Data Wrangling

تحويل إطارات بيانات Pandas إلى مصفوفات NumPy بكفاءة

Spread the love

يُعدّ مكتبا Pandas و NumPy حجر الزاوية في بيئة علم بيانات Python. يتميز Pandas ببراعته في معالجة البيانات باستخدام هيكل DataFrame، بينما يبرز NumPy في الحوسبة العددية الفعالة باستخدام مصفوفاته. وغالباً ما تحتاج إلى الانتقال بسلاسة بين هذين المكتبين، وتحويل DataFrame من Pandas إلى مصفوفة NumPy لمزيد من التحليل أو المعالجة. وتفصل هذه المقالة الطرق الأكثر فعالية لهذا التحويل.

جدول المحتويات

طريقة to_numpy(): النهج المُوصى به

تُعدّ طريقة to_numpy() هي الطريقة الأكثر مباشرة وفعالية لتحويل DataFrame من Pandas إلى مصفوفة NumPy. فهي تُحوّل مباشرةً قيم DataFrame إلى مصفوفة NumPy، مع توفير مرونة في تحديد نوع البيانات.


import pandas as pd
import numpy as np

# DataFrame نموذجي
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7.1, 8.2, 9.3]}
df = pd.DataFrame(data)

# التحويل إلى مصفوفة NumPy
numpy_array = df.to_numpy()
print("نوع البيانات الافتراضي:n", numpy_array)

# تحديد نوع البيانات
numpy_array_float = df.to_numpy(dtype=np.float64)
print("nنوع البيانات Float64:n", numpy_array_float)

numpy_array_int = df.to_numpy(dtype=np.int32)
print("nنوع البيانات Int32 (يقوم بقطع الأعداد العشرية):n", numpy_array_int)

لاحظ كيف يسمح تحديد dtype بالتحكم الدقيق في نوع المصفوفة الناتجة. وإذا تم حذفه، فإن to_numpy() يستنتج نوع البيانات الأنسب من بيانات DataFrame.

خاصية .values: نهج تقليدي

تُنتج خاصية .values أيضاً تمثيل مصفوفة NumPy لبيانات DataFrame. وعلى الرغم من تشابه وظيفتها مع to_numpy()، إلا أنها تعتبر طريقة تقليدية. ويفضل استخدام to_numpy() لوضوحها وطبيعتها الصريحة.


import pandas as pd
import numpy as np

# DataFrame نموذجي
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data)

# التحويل باستخدام .values
numpy_array = df.values
print(numpy_array)

المخرجات متطابقة مع استخدام to_numpy()، ولكن to_numpy() هي الممارسة الأكثر حداثة وتوصية.

طريقة to_records(): إنشاء مصفوفات مُهيكلة

عندما تحتاج إلى مصفوفة NumPy ذات حقول مُسماة (تشبه المصفوفة المُهيكلة)، استخدم طريقة to_records(). فهي تُحوّل DataFrame إلى مصفوفة سجل NumPy حيث يصبح كل عمود حقلًا مُسَمّى.


import pandas as pd
import numpy as np

# DataFrame نموذجي
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data)

# التحويل إلى مصفوفة سجل NumPy
numpy_record_array = df.to_records()

print(numpy_record_array)
print("nنوع بيانات مصفوفة السجل:")
print(numpy_record_array.dtype)

لاحظ تضمين الفهرس في مصفوفة السجل. هذه الطريقة مفيدة بشكل خاص عندما يكون الحفاظ على أسماء الأعمدة داخل هيكل مصفوفة NumPy أمرًا بالغ الأهمية للتحليل اللاحق.

في الختام، تُعدّ to_numpy() الطريقة المُوصى بها للتحويلات العامة من DataFrame إلى مصفوفة NumPy. توفر .values بديلاً مُكافئًا وظيفيًا، بينما تُعدّ to_records() الأنسب للمصفوفات المُهيكلة التي تتطلب حقولاً مُسَمّاة. ويعتمد الاختيار الأمثل على الاحتياجات المحددة والهيكل المطلوب لمصفوفة NumPy الناتجة.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *