NumPy (Python Library)

From binaryoption
Jump to navigation Jump to search
Баннер1

```wiki

NumPy (مكتبة بايثون)

NumPy (اختصار لـ Numerical Python) هي مكتبة أساسية للغة البرمجة بايثون، تستخدم على نطاق واسع في مجالات مثل علم البيانات، التعلم الآلي، التحليل العددي، والتمويل الكمي. توفر NumPy دعمًا قويًا للمصفوفات متعددة الأبعاد، إلى جانب مجموعة كبيرة من الدوال الرياضية للعمل على هذه المصفوفات بكفاءة عالية. هذا المقال موجه للمبتدئين ويهدف إلى تقديم شرح شامل لـ NumPy، مع التركيز على المفاهيم الأساسية وكيفية استخدامها في تطبيقات عملية، مع إبراز أهميتها في سياق الخيارات الثنائية و التداول.

لماذا NumPy؟

قبل NumPy، كان التعامل مع البيانات الرقمية في بايثون يتم باستخدام القوائم (Lists). القوائم مرنة، لكنها غير فعالة عند التعامل مع عمليات رياضية معقدة على كميات كبيرة من البيانات. NumPy تحل هذه المشكلة من خلال تقديم:

  • كفاءة الأداء: تستخدم NumPy مصفوفات مُخزَّنة بشكل متجاور في الذاكرة، مما يسمح بإجراء عمليات رياضية أسرع بكثير مقارنة بالقوائم.
  • الوظائف الرياضية: توفر NumPy مجموعة واسعة من الدوال الرياضية المضمنة، مثل الدوال المثلثية، الدوال اللوغاريتمية، الجذور التربيعية، وغيرها، والتي تعمل بكفاءة على المصفوفات.
  • البث (Broadcasting): تسمح NumPy بإجراء عمليات على مصفوفات ذات أبعاد مختلفة، مما يبسط التعليمات البرمجية ويقلل من الحاجة إلى حلقات التكرار (Loops).
  • التكامل مع المكتبات الأخرى: تتكامل NumPy بشكل ممتاز مع مكتبات بايثون الأخرى مثل SciPy، Pandas، وMatplotlib، مما يجعلها حجر الزاوية في العديد من مشاريع علم البيانات.

تثبيت NumPy

لتثبيت NumPy، يمكنك استخدام مدير الحزم pip، وهو أداة تأتي مع توزيعات بايثون الحديثة. افتح سطر الأوامر أو الطرفية (Terminal) وقم بتشغيل الأمر التالي:

``` pip install numpy ```

استيراد NumPy

بعد التثبيت، يمكنك استيراد NumPy في برنامج بايثون الخاص بك باستخدام الأمر التالي:

```python import numpy as np ```

عادةً ما يتم استيراد NumPy بالاسم المستعار `np` لتسهيل الرجوع إليها.

المصفوفات (Arrays)

المصفوفة هي البنية الأساسية للبيانات في NumPy. يمكن إنشاء مصفوفة من قائمة، أو من خلال تحديد شكلها وحجمها.

  • إنشاء مصفوفة من قائمة:

```python import numpy as np

my_list = [1, 2, 3, 4, 5] my_array = np.array(my_list) print(my_array) # Output: [1 2 3 4 5] ```

  • إنشاء مصفوفة ذات شكل معين:

```python import numpy as np

  1. إنشاء مصفوفة من الأصفار بحجم 3x4

zeros_array = np.zeros((3, 4)) print(zeros_array)

  1. إنشاء مصفوفة من الواحدات بحجم 2x2

ones_array = np.ones((2, 2)) print(ones_array)

  1. إنشاء مصفوفة فارغة بحجم 2x3

empty_array = np.empty((2, 3)) print(empty_array)

  1. إنشاء مصفوفة متسلسلة من الأرقام

range_array = np.arange(10) # من 0 إلى 9 print(range_array)

  1. إنشاء مصفوفة متسلسلة من الأرقام بفارق معين

linspace_array = np.linspace(0, 1, 5) # 5 أرقام موزعة بالتساوي بين 0 و 1 print(linspace_array) ```

  • خصائص المصفوفة:

| الخاصية | الوصف | |---|---| | `shape` | إرجاع شكل المصفوفة (عدد الصفوف والأعمدة). | | `ndim` | إرجاع عدد الأبعاد. | | `dtype` | إرجاع نوع البيانات المخزنة في المصفوفة. | | `size` | إرجاع العدد الإجمالي للعناصر في المصفوفة. |

مثال:

```python import numpy as np

my_array = np.array([[1, 2, 3], [4, 5, 6]]) print(my_array.shape) # Output: (2, 3) print(my_array.ndim) # Output: 2 print(my_array.dtype) # Output: int64 (أو نوع بيانات آخر حسب النظام) print(my_array.size) # Output: 6 ```

فهرسة وتقطيع المصفوفات

يمكن الوصول إلى عناصر المصفوفة باستخدام الفهرسة والتقطيع.

  • الفهرسة:

```python import numpy as np

my_array = np.array([10, 20, 30, 40, 50]) print(my_array[0]) # Output: 10 (العنصر الأول) print(my_array[-1]) # Output: 50 (العنصر الأخير)

  1. في المصفوفات متعددة الأبعاد:

my_array_2d = np.array([[1, 2, 3], [4, 5, 6]]) print(my_array_2d[0, 1]) # Output: 2 (العنصر في الصف الأول والعمود الثاني) ```

  • التقطيع:

```python import numpy as np

my_array = np.array([10, 20, 30, 40, 50]) print(my_array[1:4]) # Output: [20 30 40] (العناصر من الفهرس 1 إلى 3) print(my_array[:3]) # Output: [10 20 30] (العناصر من البداية إلى الفهرس 2) print(my_array[2:]) # Output: [30 40 50] (العناصر من الفهرس 2 إلى النهاية) print(my_array[::2]) # Output: [10 30 50] (كل عنصرين)

  1. في المصفوفات متعددة الأبعاد:

my_array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(my_array_2d[:2, 1:]) # Output: [[2 3] [5 6]] (الصفين الأول والثاني والعمودين الثاني والثالث) ```

العمليات الرياضية على المصفوفات

NumPy توفر مجموعة واسعة من العمليات الرياضية التي يمكن إجراؤها على المصفوفات.

  • العمليات الحسابية الأساسية:

```python import numpy as np

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

print(a + b) # Output: [5 7 9] (الجمع) print(a - b) # Output: [-3 -3 -3] (الطرح) print(a * b) # Output: [ 4 10 18] (الضرب) print(a / b) # Output: [0.25 0.4 0.5 ] (القسمة) print(a ** 2) # Output: [1 4 9] (الأس) ```

  • الدوال الرياضية:

```python import numpy as np

my_array = np.array([1, 4, 9, 16]) print(np.sqrt(my_array)) # Output: [1. 2. 3. 4.] (الجذر التربيعي) print(np.sin(my_array)) # Output: [ 0.84147098 -0.7568025 0.41078129 -0.28790332] (الجيب) print(np.exp(my_array)) # Output: [ 2.71828183 54.59815003 8103.08392758 8886110.52050787] (الأس الطبيعي) ```

  • البث (Broadcasting):

```python import numpy as np

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

print(a + b) # Output: [3 4 5] (بث العدد 2 إلى مصفوفة [2, 2, 2] ثم الجمع) ```

إعادة تشكيل المصفوفات

يمكن تغيير شكل المصفوفة باستخدام الدالة `reshape()`.

```python import numpy as np

my_array = np.arange(12) print(my_array) # Output: [ 0 1 2 3 4 5 6 7 8 9 10 11]

reshaped_array = my_array.reshape(3, 4) # إعادة تشكيل إلى مصفوفة 3x4 print(reshaped_array)

  1. Output:
  2. [[ 0 1 2 3]
  3. [ 4 5 6 7]
  4. [ 8 9 10 11]]

```

NumPy والخيارات الثنائية والتداول

NumPy تلعب دورًا هامًا في تطوير استراتيجيات التداول في الخيارات الثنائية والأسواق المالية بشكل عام. بعض التطبيقات تشمل:

أمثلة عملية

  • حساب المتوسط المتحرك البسيط (SMA):

```python import numpy as np

prices = np.array([10, 12, 15, 14, 16, 18, 20]) window_size = 3

  1. استخدام دالة convolution لحساب المتوسط المتحرك

sma = np.convolve(prices, np.ones(window_size), 'valid') / window_size print(sma) # Output: [12.33333333 13.66666667 15. 16. 18. ] ```

  • حساب مؤشر القوة النسبية (RSI): (مثال مبسط)

```python import numpy as np

prices = np.array([10, 12, 15, 14, 16, 18, 20]) period = 14

  1. (هذا مثال مبسط، يتطلب حساب المكاسب والخسائر بشكل صحيح)
  2. في الواقع، تحتاج إلى حساب التغيرات في الأسعار ثم حساب متوسط المكاسب والخسائر
  3. ثم تطبيق الصيغة الكاملة لـ RSI.

rsi = 50 # قيمة افتراضية print(rsi) ```

موارد إضافية

```

ابدأ التداول الآن

سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер