بيانات
ما NPY؟
NPY (.npy) تنسيق NumPy الثنائي لحفظ مصفوفة واحدة. يسجل الرأس إصدار التنسيق وdtype وshape وترتيب الذاكرة، ثم تأتي بيانات المصفوفة. وعلى خلاف الجداول النصية يمكنه الحفاظ على الأنواع العددية والأشكال متعددة الأبعاد. NPY ليس أرشيفًا مضغوطًا وعادة يحفظ مصفوفة واحدة في كل ملف. قد تستخدم مصفوفات object النوع pickle؛ لذا افحص هذا الأمر وخيار `allow_pickle` عند تحميل مدخلات غير موثوقة.
متى تختار هذا التنسيق
- الحفاظ على dtype والشكل متعدد الأبعاد دون تحويل نصي
- استخدام تخطيط الذاكرة للوصول إلى أجزاء من مصفوفات غير كائنية متوافقة
متى تتجنب هذا التنسيق
- جمع مصفوفات كثيرة مسماة
- استخدامه مخزنًا مضغوطًا مقسمًا لمصفوفات ضخمة أو بعيدة
الاستخدامات الشائعة
- حفظ مصفوفة NumPy واحدة بصيغة ثنائية مع نوعها وشكلها
- تمرير المصفوفات إلى تدفقات علمية وتعلم آلي مبنية على NumPy
الخصائص
- يصف الرأس إصدار التنسيق وdtype وshape وترتيب الذاكرة
- تخزن بيانات المصفوفة الثنائية بعد الرأس
- يفسر القارئ إصدار التنسيق المعلن
المزايا والعيوب
المزايا
- الحفاظ على dtype العددي والشكل متعدد الأبعاد لمصفوفة واحدة
- تجنب تحليل النص وتحويلات الأنواع المتكررة
- إمكانية تخطيط الذاكرة للمصفوفات المدعومة
العيوب
- ملف NPY المعتاد لمصفوفة واحدة لا لفهرسة مصفوفات متعددة
- لا يوفر NPY وحده ضغطًا عامًا أو تقسيمًا إلى كتل
- قد تحد أنواع NumPy الخاصة وقيم الكائنات من التشغيل البيني
الفتح والتحويل
طريقة الفتح
افتحه بواسطة NumPy `load` أو أداة تدعم NPY، ثم تحقق من dtype وshape وإصدار التنسيق. للمصفوفات الكبيرة تأكد من ملاءمة تخطيط الذاكرة لتنسيق البيانات والاستخدام.
طريقة التحويل
احفظ باستخدام NumPy `save`. عند التحويل من نص قارن الأنواع وترتيب البايتات وshape ومعالجة القيم المفقودة. إذا وجدت مصفوفات object فتحقق من الحاجة إلى pickle ولا تفعّله دون حذر مع ملفات غير موثوقة.
تنبيهات
- قد يستخدم تحميل مصفوفات object تقنية pickle؛ لا تفعّل `allow_pickle` بلا حذر للملفات غير الموثوقة
- لا يناسب تخطيط الذاكرة كل أنواع البيانات والتخطيطات والعمليات بالقدر نفسه
- NPY لمصفوفة واحدة؛ فكّر في NPZ أو تنسيق آخر عند الحاجة إلى عدة مصفوفات أو ضغط
الأسئلة الشائعة
هل NPY ملف نصي؟
لا. يحتوي على رأس وبيانات مصفوفة ثنائية؛ ويسجل الرأس معلومات مثل dtype وshape.
هل يمكن حفظ عدة مصفوفات في ملف NPY واحد؟
التنسيق القياسي مخصص لمصفوفة واحدة. فكّر في NPZ أو حاوية أخرى لجمع عدة مصفوفات.
هل يتجنب NPY مخاطر pickle؟
ليس دائمًا. قد تحفظ مصفوفات object أو تحمّل باستخدام pickle. تعامل بحذر مع NumPy `load` و`allow_pickle` للمدخلات غير الموثوقة.