Amer Abdallah نشر 9 أغسطس 2021 أرسل تقرير نشر 9 أغسطس 2021 باستخدام مصفوفات Python القياسية ، يمكنني القيام بما يلي: arr = [] arr.append([1,2,3]) arr.append([4,5,6] print(arr) # Output: [[1,2,3],[4,5,6]] ومع ذلك ، لا يمكنني فعل الشيء نفسه في numpy. فمثلا: arr = np.array([]) arr = np.append(arr, np.array([1,2,3])) arr = np.append(arr, np.array([4,5,6])) print(arr) # Ouput: [1,2,3,4,5,6] لاحظ أنه تم دمج الصفوف معًَا حاولت أيضًا أن أستخدم التابع vstack ، لكن عندما أستخدمه على مصفوفة فارغة، أحصل على: ValueError: all the input array dimensions except for the concatenation axis must match exactly لا أعرف سبب هذا الخطأ، لذلك كيف يمكنني إضافة صف جديد بمصفوفة فارغة في numpy؟ 1 اقتباس
0 سمير عبود نشر 10 أغسطس 2021 أرسل تقرير نشر 10 أغسطس 2021 تحتاج إلى تعريف مصفوفة فارغة بالطريقة التالية: arr = np.empty((0,3), int) بعد ذلك يُمكنك إضافة الصفوف الجديدة: import numpy as np arr = np.empty((0,3), int) arr = np.append(arr, np.array([[1, 2, 3]]), axis=0) arr = np.append(arr, np.array([[4, 5, 6]]), axis=0) print(arr) كما يُمكنك إستخدام الدالتين np.hstack و np.vstack: import numpy as np arr = np.array([]) arr = np.hstack((arr, np.array([1,2,3]))) # arr : => [1,2,3] arr = np.vstack((arr, np.array([4,5,6]))) # arr : => [[1,2,3],[4,5,6]] arr = np.vstack((arr, np.array([7,8,9]))) # arr : => [[1,2,3],[4,5,6],[7,8,9]] 1 اقتباس
1 Ali Haidar Ahmad نشر 10 أغسطس 2021 أرسل تقرير نشر 10 أغسطس 2021 (معدل) حسناً: كيف نضيف أعمدة وأسطر لصفوفات نمباي، أول طريقة باستخدام التابع column_stack لإضافة عمود: # إضافة أعمدة import numpy as np arr = np.array([[3, 3, 2], [0, 8, 7]]) # طباعة المصفوفة الأصلية print("initial_array : \n", str(arr)); # العمود المراد إضافته col = np.array([0, 12]) # إضافة العمود a = np.column_stack((arr, col)) # نمرر المصفوفة ثم العمود # النتيجة print ("resultant array\n", str(a)) """ initial_array : [[3 3 2] [0 8 7]] resultant array [[ 3 3 2 0] [ 0 8 7 12]] """ ولإضافة عدة أعمدة دفعة واحدة: # إضافة أعمدة import numpy as np arr = np.array([[3, 3, 2], [0, 8, 7]]) # طباعة المصفوفة الأصلية print("initial_array : \n", str(arr)); # العمود المراد إضافته col = np.array([[0, 12],[5,6]]) # إضافة العمود a = np.column_stack((arr, col)) # نمرر المصفوفة ثم العمود # النتيجة print ("resultant array\n", str(a)) """ initial_array : [[3 3 2] [0 8 7]] resultant array [[ 3 3 2 0 12] [ 0 8 7 5 6]] """ أو استخدام التابع np.hstack لإضافة أعمدة أيضاً: # إضافة أعمدة import numpy as np arr = np.array([[3, 3, 2], [0, 8, 7]]) # طباعة المصفوفة الأصلية print("initial_array : \n", str(arr)); # العمود المراد إضافته col = np.array([[0, 12],[5,6]]) # إضافة العمود a = np.hstack((arr, np.atleast_2d(col).T))# نمرر المصفوفة ثم العمود # حيث أن np.atleast_2d(col) """ array([[ 0, 12], [ 5, 6]]) """ np.atleast_2d(col).T """ array([[ 0, 5], [12, 6]]) """ # النتيجة print ("resultant array\n", str(a)) """ initial_array : [[3 3 2] [0 8 7]] resultant array [[ 3 3 2 0 12] [ 0 8 7 5 6]] """ أو من خلال التابع np.vstack لإضافة أسطر: # إضافة أعمدة import numpy as np arr = np.array([[3, 3, 2], [0, 8, 7]]) # طباعة المصفوفة الأصلية print("initial_array : \n", str(arr)); # السطر المراد إضافته row = np.array([1, 2,5]) # السطر الذي نريد إضافته # إضافة السطر a = np.vstack ((arr, row) ) # نمررالمصفوفة والسطر # النتيجة print ("resultant array\n", str(a)) """ initial_array : [[3 3 2] [0 8 7]] resultant array [[3 3 2] [0 8 7] [1 2 5]] """ ولإضافة عدة أسطر دفعة واحدة: # إضافة أعمدة import numpy as np arr = np.array([[3, 3, 2], [0, 8, 7]]) # طباعة المصفوفة الأصلية print("initial_array : \n", str(arr)); # الأسطر المراد إضافتها row = np.array([[1, 2,5],[2,3,2]]) # السطر الذي نريد إضافته # إضافة السطر a = np.vstack ((arr, row) ) # نمررالمصفوفة والسطر # النتيجة print ("resultant array\n", str(a)) """ initial_array : [[3 3 2] [0 8 7]] resultant array [[3 3 2] [0 8 7] [1 2 5] [2 3 2]] """ في بعض الأحيانً يكون لدينا مصفوفة فارغة ونحتاج إلى إضافة صفوف لها. يوفر Numpy وظيفة لإضافة صف لمصفوفة Numpy فارغة باستخدام الدالة numpy.append . import numpy as np # إنشاء مصفوفة ثنائية فارغة arr = np.empty((0,2), int) # هنا حددنا عدد أعمدة ب2 لذا فأي صف نضيفه يجب أن يكون له عمودين print("Empty array:\n",arr) # إضافة أسطر جديدة arr = np.append(arr, np.array([[1,5]]), axis=0) arr = np.append(arr, np.array([[6,7]]), axis=0) print("array:\n") print(arr) """ Empty array: [] array: [[1 5] [6 7]] """ تم التعديل في 10 أغسطس 2021 بواسطة Ali Haidar Ahmad 1 اقتباس
0 عبدالباسط ابراهيم نشر 10 أغسطس 2021 أرسل تقرير نشر 10 أغسطس 2021 يمكنك أيضاً بما أنك تستخدم list بواسطة python إنشاء list فارغة وإضافة البيانات التي تريدها ثم في الأخير تقوم بتحويلها ل numpy array import numpy as np list = [] list.append([1,3,5]) list.append([2,4,6]) array2 = np.array(list) print(array2) #الناتج: #[[1 3 5] # [2 4 6]] ولاحظ أنه في حالة كنت تستخدم for loop سيكون من الأفضل استخدام list ثم تحويلها لمصفوفة بدلاً من عمل append لمصفوفة numpy بداخل ال for loop إذا كنت تهتم للسرعة 1 اقتباس
السؤال
Amer Abdallah
باستخدام مصفوفات Python القياسية ، يمكنني القيام بما يلي:
ومع ذلك ، لا يمكنني فعل الشيء نفسه في numpy. فمثلا:
لاحظ أنه تم دمج الصفوف معًَا
حاولت أيضًا أن أستخدم التابع vstack ، لكن عندما أستخدمه على مصفوفة فارغة، أحصل على:
لا أعرف سبب هذا الخطأ، لذلك كيف يمكنني إضافة صف جديد بمصفوفة فارغة في numpy؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.