اذهب إلى المحتوى
  • 0

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

Fahmy Mostafa

السؤال

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

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

Recommended Posts

  • 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
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...