NumPy: التاريخ والوقت

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

1. ما ستتعلمه




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

PYTHON
import numpy as np

# إنشاء مصفوفات التواريخ
dates = np.array(['2024-01-01', '2024-02-01', '2024-03-01'], dtype='datetime64')
print(dates)  # ['2024-01-01' '2024-02-01' '2024-03-01']

---
## 3. العمليات الحسابية على التواريخ
print(dates + np.arange(3))  # إضافة أيام

---
## 4. نطاق تواريخ
range_dates = np.arange('2024-01-01', '2024-01-10', dtype='datetime64')
print(range_dates)

---
## 5. استخراج المكونات
print(dates.astype('datetime64[Y]'))  # السنة
print(dates.astype('datetime64[M]'))  # الشهر
TEXT 📖 للعرض فقط
> **المخرجات:** قم بتشغيل NumPy 2.x في بيئة Python المحلية لديك لرؤية مخرجات ndarray. خادم Piston لا يحتوي على NumPy مثبتًا مسبقًا — قم بتثبيته محليًا (`pip install numpy`) وقارن. قد تختلف القيم الفعلية حسب إصدار NumPy والبذرة العشوائية.

▶ مثال: إنشاء نطاقات التواريخ (الصعوبة ⭐)

PYTHON
import numpy as np

---
## 6. نطاق يومي
days = np.arange('2024-01-01', '2024-01-11', dtype='datetime64')
print("Daily:", days)

---
## 7. نطاق شهري
months = np.arange('2024-01', '2024-07', dtype='datetime64[M]')
print("Monthly:", months)

---
## 8. نطاق ساعي
hours = np.arange('2024-01-01', '2024-01-02', dtype='datetime64[h]')
print("Hourly:", hours)

المخرجات:

TEXT 📖 للعرض فقط
Daily:
Monthly:
Hourly:

المخرجات:

TEXT 📖 للعرض فقط
Daily: ['2024-01-01' '2024-01-02' '2024-01-03' '2024-01-04' '2024-01-05'
 '2024-01-06' '2024-01-07' '2024-01-08' '2024-01-09' '2024-01-10']
Monthly: ['2024-01' '2024-02' '2024-03' '2024-04' '2024-05' '2024-06']
Hourly: ['2024-01-01T00' '2024-01-01T01' '2024-01-01T02' '2024-01-01T03'
 '2024-01-01T04' '2024-01-01T05' '2024-01-01T06' '2024-01-01T07'
 '2024-01-01T08' '2024-01-01T09' '2024-01-01T10' '2024-01-01T11'
 '2024-01-01T12' '2024-01-01T13' '2024-01-01T14' '2024-01-01T15'
 '2024-01-01T16' '2024-01-01T17' '2024-01-01T18' '2024-01-01T19'
 '2024-01-01T20' '2024-01-01T21' '2024-01-01T22' '2024-01-01T23']

▶ مثال: العمليات الحسابية على التواريخ (الصعوبة ⭐⭐)

PYTHON
import numpy as np

start = np.array('2024-01-15', dtype='datetime64')

---
## 9. إضافة أيام
print("Start:", start)
print("+7 days:", start + 7)
print("+30 days:", start + 30)
print("-5 days:", start - 5)

---
## 10. الفرق بين التواريخ
d1 = np.array('2024-01-01', dtype='datetime64')
d2 = np.array('2024-12-31', dtype='datetime64')
delta = d2 - d1
print("Days in 2024:", delta)

---
## 11. استخراج المكونات
date = np.array('2024-07-04', dtype='datetime64')
print("Year:", date.astype('datetime64[Y]'))
print("Month:", date.astype('datetime64[M]'))

المخرجات:

TEXT 📖 للعرض فقط
Start:
+7 days:
+30 days:
-5 days:
Days in 2024:

المخرجات:

TEXT 📖 للعرض فقط
Start: 2024-01-15
+7 days: 2024-01-22
+30 days: 2024-02-14
-5 days: 2024-01-10
Days in 2024: 365 days
Year: 2024
Month: 2024-07

▶ مثال: حسابات أيام العمل (الصعوبة ⭐⭐)

PYTHON
import numpy as np

start = np.datetime64('2024-01-01')
end = np.datetime64('2024-01-31')

---
## 12. عد أيام العمل
bd = np.busday_count(start, end)
print(f"Business days Jan 2024: {bd}")

---
## 13. إيجاد يوم العمل التالي
print("Next business day after 2024-01-05:", np.busday_offset('2024-01-05', 0, roll='forward'))

---
## 14. نطاق أيام العمل
biz_days = np.busday_offset('2024-01-01', np.arange(10))
print("First 10 business days of 2024:", biz_days)

المخرجات:

TEXT 📖 للعرض فقط
Next business day after 2024-01-05:
First 10 business days of 2024:

المخرجات:

TEXT 📖 للعرض فقط
Business days Jan 2024: 22
Next business day after 2024-01-05: 2024-01-08
First 10 business days of 2024: ['2024-01-01' '2024-01-02' '2024-01-03' '2024-01-04' '2024-01-05'
 '2024-01-08' '2024-01-09' '2024-01-10' '2024-01-11' '2024-01-12']

س ما الفرق بين datetime64 و datetime في Python؟
ج datetime64 هو عدد صحيح ثابت العرض 64 بت يمثل الوقت، مما يجعله سريعًا وفعالًا في استخدام الذاكرة. datetime في Python هو كائن كامل بمرونة أكبر لكن بتكلفة أعلى.
س ما هي دقة datetime64؟
ج تعتمد على الوحدة — datetime64[Y] (سنة)، datetime64[M] (شهر)، datetime64[D] (يوم)، datetime64[h] (ساعة)، datetime64[ms] (ميلي ثانية)، datetime64[ns] (نانو ثانية).
س كيف أحسب أيام العمل؟
ج استخدم np.busday_count(start, end) لعد أيام العمل بين تاريخين، وnp.busday_offset لإيجاد أقرب يوم عمل.


❓ أسئلة شائعة

س ما هو أهم شيء يجب تذكره؟
ج عمليات NumPy متجهة — تجنب حلقات Python لأداء أفضل.
س أين يمكنني معرفة المزيد؟
ج اطّلع على وثائق NumPy الرسمية على numpy.org للمراجع التفصيلية والمواضيع المتقدمة.
س هل يعمل هذا مع NumPy 2.x؟
ج نعم — جميع الأمثلة متوافقة مع NumPy 2.x. بعض الواجهات القديمة (مثل np.random.seed) لا تزال مدعومة لكن البدائل الحديثة موصى بها.

📖 ملخص



📝 تمارين

  1. مبتدئ (الصعوبة ⭐): أنشئ مصفوفة بجميع تواريخ يناير 2024. اطبع أول 5 وآخر 5 تواريخ.

  2. متوسط (الصعوبة ⭐⭐): أنشئ نطاق تواريخ من 2024-01-01 إلى 2024-12-31. استخرج الشهر من كل تاريخ واحسب عدد التواريخ في كل شهر.

  3. متقدم (الصعوبة ⭐⭐⭐): احسب عدد أيام العمل بين 2024-01-01 و 2024-12-31. قارن مع العدد الإجمالي للأيام التقويمية.

Web-Tutorial.com

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

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

100%