شرح مكتبة numpy بلغة البايثون | Explanation of the numpy library in Python

شرح مكتبة numpy بلغة البايثون | Explanation of the numpy library in Python

شرح مكتبة numpy بلغة البايثون | Explanation of the numpy library in Python

NumPy هي حزمة أساسية من اساسيات لغة الـ Python تُستخدم هذة المكتبة للمعالجة والعمليات الفعالة على الوظائف الرياضية المختلفة عالية المستوى والمصفوفات متعددة الأبعاد والجبر الخطي وتحويلات فورييه وإمكانيات الأرقام العشوائية وما إلى ذلك ، وتوفر أدوات لدمج كود C و C ++ و Fortran في Python . يستخدم NumPy في الغالب في Python للحوسبة العلمية.


من اهم اللغات التي يجب ان تركز عليها في الاونه الاخيره وهي لغه بايثون وذلك لان هذه اللغه اصبحت مطلوبه في سوق العمل بشكل مأهول لذلك اذا كنت تبحث عن وظيفه مستقبليه في عالم البرمجه يمكنك تعلم لغه البايثون او يمكنك تعلم اي لغه برمجه اخرى لانه كما تعلمون المستقبل متجه بشكل كبير الى الذكاء الاصطناعي و الي التكنولوجيا والكمبيوتر بشكل خاص , لغه python تتميز بانها قادره على تعليمك الذكاء الاصطناعي ويمكنك استخدامه في الذكاء الاصطناعي وهي من اهم اللغات التي يجب على الجميع التركيز عليها في الفتره الحاليه. ولكن كما تعلمون ان كل لغه برمجه تظهر جديده تحل مشكله للغات التي قبلها. 


لغه بايثون ظهرت عندما وجدت هنالك مشاكل في لغات البرمجه الاخرى وانها نفس الشكل تقريبا سواء java او c و c++ ف لغه بايثون وفرت علينا كتابه اكواد كثيره حيث توفر هذة اللغة اختصارات رهيبه جدا بدلا من كتابه كود جافا من 50 سطر على سبيل المثال يمكنك عمله في البايثون بحوالي 20 سطر او اقل , الامر نفسه و النتيجه نفسها ولكن syntax اللغه ابسط وايضا يوجد مكتبات تسهل عليك الكثير من العمليات والاختبارات موجوده بالبايثون سنحاول مشاركه الكثير من النماذج ومن الاختبارات ومن الامثله. التي يمكنك الاستفاده منها في تحسين مستواك في لغه بايثون.


نبذة عن مكتبة Numpy

Numpy هي وظيفة بلغة Python وهي المسؤولة عن حساب المتوسط الحسابي لجميع العناصر الموجودة في المصفوفة التي يقوم المستخدم بإدخالها ,  ببساطة ضع الوظائف يأخذ مجموع كل العناصر الفردية الموجودة على طول المحور المتوفر ويقسم المجموع على عدد العناصر المحسوبة الفردية. يجب أن يكون المحور الذي يتم إجراء الحساب على طوله محددًا مسبقًا وإلا سيتم أخذ القيمة الافتراضية للمحاور ( تستخدم بشكل كبير مع array وتوفر وقت كبير جدا في run time للمشروع الذي نعمل عليه ) .


كيفية اضافة عنصر داخل array باستخدام numpy في البايثون

كيفية اضافة عنصر داخل array باستخدام numpy في البايثون

هذا عباره عن مثال بسيط يوضح لنا الفرق بين اضافة عنصر داخل اراي بالطريقة العادية وبطريقة numpy  لو نلاحظ ان طريقة numpy اسهل وابسط بكثير جدا من الطريقة الاولى وايضا توفر علينا الكثير من الوقت والجهد

import numpy as np

x = [1,2,3]
y = [1,2,3]
z = []
for i in range (len(x)) :
    z.append(x[i]+y[i])
print(z)

# --- numpy
e1 = np.array (x)
e2 = np.array (y)
print(e1 + e2)


كيفية اضافة اكثر من array داخل numpy ببايثون

كيفية اضافة اكثر من array داخل numpy ببايثون

numpy تستطيع اضافة فيها حتى 3 مصفوفات بداخل بعضهم البعض كما هو موضح بالصورة وايضا تستطيع تحديد العناصر التي تريد طباعتها وذلك عن طريق انشاء [  ] وكتابة بداخلة المصفوفه التي تريد طباعتها ببساطة .

import numpy as np

x = np.array( [ [ [1,2] , [3,4] , [5,6] , [7,8] ] ] )
print(x)
print("-"*20)
print( x[0 , 1] )


ما الفرق بين استخدام numpy و list العادية ؟

ما الفرق بين استخدام numpy و list العادية ؟

في هذا المثال قمنا بإنشاء مصفوفه تحتوي على عدد من المتغيرات مره باستخدام numpy والاخرى بدونها لو نلاحظ ان في الطباعة قمنا بطباعة النوع وايضا المخرجات , المخرجات في numpy كلها اصبحت string وذلك لان المكتبة تجعل كل العناصر بنفس نوع datatype الخاص بها لكي تستطيع التعامل معها عكس list الاخرى التي تترك كل عنصر كما هو عليه .

import numpy as np

x = np.array( [1, 2, "hello" , True , "F"] )
y = [ 1, 2, "hello" , True , "F" ]
print(x)
print(y)

print("-"*20)

print(type(x))
print(type(y))


كيفية طباعة صفحة ملونه باستخدام numpy بلغة python

كيفية طباعة صفحة ملونه باستخدام numpy بلغة python

في هذا الكود سوف نقوم بعمل صفحة باللون الابيض ونحدد الابعاد الخاص بها ومن ثم اللون وبعدها نعرض الصورة في imshow لكي نراها حيث ان قيمة 255 تعني الابيض اذا كنت تريد طباعة صورة باللون الاسود قم بجعل القيمة 0.

x = np.full((100,200,3) , 255 , dtype=np.uint8)
cv2.imshow("image view" , x)
cv2.waitKey(0)


كيفية طباعة مصفوفه من قيمة واحده numpy 

كيفية طباعة مصفوفه من قيمة واحده numpy

هنا سوف تستطيع انشاء اي مصفوفه بعدد الاعمده والصفوف التي تريدها بنفس القيمة وذلك عن طريق كتابة np ثم اسم القيمة سواء 0 او 1 او فارغ او full وتعرفنا عليها بالاعلى او حتى eye يمكنك تجربة القيم وطباعتهم .

import numpy as np

a = np.zeros((2,3) , dtype=np.int32)
b = np.ones((2,3) , dtype=np.int32)
c = np.empty((2,3) , dtype=np.int)
d = np.full((2,3,3) , 255 , dtype=np.uint8)
e = np.eye(5 , dtype=np.int16)

print(b)


طباعة مصفوفة محدوده باستخدام numpy 

طباعة مصفوفة محدوده باستخدام numpy

اذا كنت ترغب في انشاء مصفوفة مكونه من مجموعة من الارقام بحدود معينه فيمكنك من خلال الكود التالي حيث ان الامر arange يقوم بتكوين مصفوفه من و الى وهنا اخبرته من 5 الى 9 والثانية كانت 5 فقط يعني من البداية الى 5 وقمت بطباعة الاثنين .


import numpy as np
import cv2
x=np.arange(5 , 9)
y=np.arange(5)
print(x)
print("*"*20)
print(y)


طباعة list باستخدام numpy بشرط معين

طباعة list باستخدام numpy بشرط معين

اذا كنت تريد مجموعة من الارقام ولكن بشرط معين مثلا نريد بداية المصفوفه من 10 الى 30 ولكن تكون الزيادة 3.2 بمعنى 13.2 ثم 16.4 وهكذا الشرط الذي قمنا به ان تكون الزيادة 3.2 الى ان يصل للناتج النهائي .

import numpy as np

x=np.arange(10 , 30 , 3.2)
print(x)
print("*"*20)


طباعة مصفوفة بالعدد الذي نرغب به في بايثون

طباعة مصفوفة بالعدد الذي نرغب به في بايثون

هذا الكود يعتبر نفس السابق تقريبا ولكن بدلا من ان نضع زيادة نريد ان نضع حجم للمصفوفه بمعنى نريد مصفوفه مكونه من 50 عنصر او 100 او غيره فبدلا من عملها بشكل يدوي يمكن استخدام الكود التالي والذي يختصر علينا الكثير من الوقت .

import numpy as np

x=np.linspace(10 , 30 , 50)
print(x)


انشاء matrix بارقام عشواية وبحجم معين ببايثون

انشاء matrix بارقام عشواية وبحجم معين ببايثون

هنا تم استخدام العنصر x كمتغير يقوم بإنشاء مصفوفه عشوائية بمجموعه من الارقام من 0 الى 80 وحجم المصفوفه هو 6 عناصر والكود الذي بعده يقوم بعمل 3 اعمده في صفين يمكنك تغيير القيم كما تريد وقمنا بعدها بطباعة المتغيرات .

import numpy as np

x = np.random.randint(80 , size = 6)
x_r = x.reshape((3,2))

print(x)
print("*"*20)
print(x_r)


كيفية جمع وايجاد اكبر واصغر قيمة في array باستخدام numpy

كيفية جمع وايجاد اكبر واصغر قيمة في array باستخدام numpy

قمنا اولا بإنشاء list عادية وجعلناها عمودين في ثلاث صفوف وعمود قمنا بجمعه كاملا واياجد اكبر متغير بداخلة وثانينا قمنا بعمل جمع للصفوف وايجاد اقل عدد من الصفوف هذة توفر وقت عليك بدلا من عمل  for loop على العناصر .

import numpy as np

# normal_list = np.array([[1, 2, 3], [4, 5, 6]])

x = np.random.randint(3,6 , size = 6)
x_r = x.reshape((3,2))

print(x)
print("--- Random array ---")
print(x_r)

print("---  Sum column and min number ---")

print( x_r.sum( axis =0 ) )
print( x_r.max( axis =0 ) )

print(" --- Sum Rows and max number --- ")
print( x_r.sum( axis =1 ) )
print( x_r.max( axis =1 ) )


طريقة طباعة الlist بشكل vertical و horizontal في بايثون

طريقة طباعة الlist بشكل vertical و horizontal في بايثون

هذا الكود يمكنك من التحويل من راسي الى افقي والعكس , هذا الامر قد تحتاجه في عملية ترتيب الليست بجانب بعضها البعض قد لا تحتاجة كثيرا ولكن واجب علينا شرح كل تفاصيل هذة المكتبة .

import numpy as np


x = np.arange(2,9)
y = np.arange(10,17)

m = np.vstack([x,y])
m2 = np.hstack([x,y])


معرفة الاعداد الزوجية والفردية في python باستخدام numpy

معرفة الاعداد الزوجية والفردية في python باستخدام numpy

اخر كود في مقالة اليوم يساعدنا في انشاء قائمة مكونه من 10 عناصر ونريد عمل فلترة لهم لنعرف الاعداد الزوجية والفردية وايضا نريد طباعة الاعداد هذا الكود قد تحتاجة في عملية انشاء برنامج للحضور والغياب فاذا حضر الطالب وحقق شرط معين يكون true واذا لم يتحقق يكون false .


import numpy as np

x = np.arange(0,10)
mask = (x%2 ==0 )
y = x[mask]
print(mask)
print(y)


الى هنا تكون انتهت مقالة اليوم ونتمنى ان نلقاكم في مقالة اخرى ولمزيد من المقالات في لغة ألبايثون يمكنكم مشاهدة احد المقالات السابقة في الموقع .


تعليقات