• 0

ما هو الفرق بين ndarray والمصفوفة العادية array في numpy؟

ما هو الفرق بين المصفوفة من نوع ndarray والمصفوفة العادية array في Numpy؟ عرفت مؤخرًا أن دوال مثل asanyarray وغيرها قد تعيد مصفوفة من نوع ndarray لكن لم أفهم ما الفرق بين هذا النوع من المصفوفات والمصفوفات العادية

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

numpy.array هي مجرد دالة ملائمة لإنشاء ndarray ، إنها ليست صنف class بحد ذاتها.

يمكنك أيضًا إنشاء مصفوفة array باستخدام numpy.ndarray ، لكنها ليست الطريقة الموصى بها. من توثيق numpy.ndarray:

اقتباس

يجب إنشاء المصفوفات باستخدام array، zeros أو empty... تشير المعلمات الواردة هنا إلى دالة منخفضة المستوى ( ndarray(...)) لإنشاء مصفوفة.

معظم عناصر التنفيذ موجودة في كود C ، هنا في multiarray ، ولكن يمكنك البدء في النظر إلى واجهات ndarray هنا.

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

numpy.array هي تابع يعيد numpy.ndarray لكن لايوجد نمط بيانات من نوع numpy.array ، للتوضيح انظر للمثال التالي:

a=[2,4,4] # list
#numpy.ndarray لاحظ أنه عبارة عن تابع نمرر له نمط بيانات كالقوائم ويرد لنا 
a = np.array(a)
type(a) # numpy.ndarray
print(type(a)) 
# <class 'numpy.ndarray'>
# أو لو جربت
isinstance(a, (np.ndarray)) # True

سيعطيك أي من السطرين التاليين رسالة خطأ:

np.ndarray(a) # error                #np.array(a)  يجب أن يكون 
isinstance(a, (np.array))  #error    # يجب أن يكون isinstance(a, (np.ndarray))

أي باختصار numpy.ndarray هي نمط بيانات في بايثون  أما numpy.array هي تابع يقوم بتحويل الدخل إلى النمط numpy.ndarray

تمّ تعديل بواسطة Ali Haidar Ahmad

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

فعليا، لا فرق بينهما اطلاقا، ف numpy.array هو فقط مجرد دالة مريحة في استخدامها لانشاء ndarray، لكنها ليست فئة مختلفة بذاتها او class مختلف.

يمكنك كذلك انشاء مصفوفة عن طريق استخدام numpy.ndarray، لكنها ليست طريقة محببة باي حال

يمكنكن ملاحظة الفرق من الكود التالي:

from numpy import array

M = array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
    ])

# أظهار المصفوفة
print(M)

# ما هو نوع المصفوفة المنشأه؟
print(type(M))

# طباعة شكل الموديول
print(type(M).__module__)

وعند تشغيل الكود يظهر التالي:

[[1 2 3]
 [4 5 6]
 [7 8 9]]
<class 'numpy.ndarray'>
numpy

لذا اذا لاحظت، لا يوجد فرق فعلي، فقط اختلاف تسميات.

تمّ تعديل بواسطة Ahmed Sharshar

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن