NumPy: الإدخال/الإخراج للملفات

آخر تحديث: 2026-08-26

1. ما ستتعلمه




2. المفاهيم الأساسية

(1) صيغة .npy

PYTHON
import numpy as np

a = np.array([1, 2, 3, 4, 5])

# حفظ
np.save('array.npy', a)

---
## 3. تحميل
b = np.load('array.npy')
print(b)  # [1 2 3 4 5]

(2) صيغة .npz (مصفوفات متعددة)

PYTHON
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])

---
## 4. حفظ مصفوفات متعددة
np.savez('data.npz', x=x, y=y)

---
## 5. تحميل
data = np.load('data.npz')
print(data['x'])  # [1 2 3]
print(data['y'])  # [4 5 6]

(3) ملفات CSV/نصية

PYTHON
---
## 6. حفظ إلى CSV
data = np.array([[1, 2, 3],
                 [4, 5, 6]])
np.savetxt('data.csv', data, delimiter=',', fmt='%.2f')

---
## 7. تحميل من CSV
loaded = np.loadtxt('data.csv', delimiter=',')

▶ مثال: حفظ وتحميل ملفات .npy (الصعوبة ⭐)

PYTHON
import numpy as np
import os

---
## 8. إنشاء وحفظ مصفوفة
a = np.array([1, 2, 3, 4, 5])
np.save('example.npy', a)

---
## 9. تحميلها مرة أخرى
b = np.load('example.npy')
print("Loaded:", b)
print("Same data:", np.array_equal(a, b))

---
## 10. تنظيف
os.remove('example.npy')

المخرجات:

TEXT 📖 للعرض فقط
Loaded:
Same data:

المخرجات:

TEXT 📖 للعرض فقط
Loaded: [1 2 3 4 5]
Same data: True

▶ مثال: الإدخال/الإخراج لملفات CSV (الصعوبة ⭐⭐)

PYTHON
import numpy as np
import os

data = np.array([[1.5, 2.3, 3.7],
                 [4.1, 5.6, 6.2],
                 [7.8, 8.4, 9.9]])

---
## 11. حفظ إلى CSV
np.savetxt('data.csv', data, delimiter=',', fmt='%.2f',
           header='x,y,z', comments='')

---
## 12. تحميل من CSV
loaded = np.loadtxt('data.csv', delimiter=',')
print("Loaded CSV:
", loaded)

---
## 13. تحميل أعمدة محددة
col_0 = np.loadtxt('data.csv', delimiter=',', usecols=0)
print("First column:", col_0)

os.remove('data.csv')

المخرجات:

TEXT 📖 للعرض فقط
First column:

المخرجات:

TEXT 📖 للعرض فقط
Loaded CSV:
 [[1.5 2.3 3.7]
 [4.1 5.6 6.2]
 [7.8 8.4 9.9]]
First column: [1.5 4.1 7.8]

▶ مثال: العمل مع ملفات .npz (الصعوبة ⭐⭐)

PYTHON
import numpy as np
import os

x = np.linspace(0, 10, 100)
y = np.sin(x)
z = np.cos(x)

---
## 14. حفظ مصفوفات متعددة
np.savez('trig.npz', x=x, y=y, z=z)

---
## 15. تحميل والوصول بالاسم
data = np.load('trig.npz')
print("Keys:", list(data.keys()))
print("x[:5]:", data['x'][:5])
print("y[:5]:", data['y'][:5])

os.remove('trig.npz')

المخرجات:

TEXT 📖 للعرض فقط
Keys:
x[:5]:
y[:5]:

المخرجات:

TEXT 📖 للعرض فقط
Keys: ['x', 'y', 'z']
x[:5]: [0.         0.1010101  0.2020202  0.3030303  0.4040404]
y[:5]: [0.         0.10083842 0.20064886 0.2984138  0.3931366]



❓ أسئلة شائعة

س ما ميزة .npy على CSV؟
ج .npy يحافظ على نوع البيانات بدقة، أسرع في القراءة/الكتابة، ويأخذ مساحة أقل على القرص. CSV قابل للقراءة البشرية ومحمول لكنه أبطأ ويفقد معلومات نوع البيانات.
س ما هي المصفوفة المعينة في الذاكرة؟
ج np.load('file.npy', mmap_mode='r') يحمّل الملف كمصفوفة معينة في الذاكرة — لا يُحمّل الملف بأكمله في الذاكرة دفعة واحدة. مفيد لمجموعات البيانات الأكبر من RAM.
س كيف أتعامل مع القيم المفقودة في CSV؟
ج استخدم np.genfromtxt مع معامل filling_values لتحديد قيمة افتراضية للإدخالات المفقودة.

📖 ملخص



📝 تمارين

  1. مبتدئ (الصعوبة ⭐): أنشئ مصفوفة، احفظها بصيغتي .npy و .csv، حمّل كليهما، وقارن القيم المحملة.

  2. متوسط (الصعوبة ⭐⭐): أنشئ 3 مصفوفات، احفظها في ملف .npz واحد، حمّلها مرة أخرى، وتحقق من استعادة كل مصفوفة بشكل صحيح.

  3. متقدم (الصعوبة ⭐⭐⭐): أنشئ مصفوفة كبيرة (1000x1000)، احفظها بصيغة .npy، وحمّلها باستخدام mmap_mode='r'. اطلع على عنصر واحد واشرح لماذا هذا أكثر كفاءة في الذاكرة لمجموعات البيانات الكبيرة.

Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%