English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

إضافة وإزالة المجموعات في NumPy

عمليات إضافة وإزالة مصفوفات، الوظائف الشائعة كما يلي:

الوظائفالعناصر والوصف
توسيعإرجاع مصفوفة جديدة بشكل معين
إضافةإضافة القيمة إلى نهاية القائمة
إدراجإدراج القيم في مكان محدد قبل السطر المحدد بناءً على المحور المحدد
deleteحذف مجموعة فرعية على محور معين، وتقديم مجموعة جديدة بعد الحذف
uniqueالبحث عن العناصر الفريدة داخل المجموعة

numpy.resize

تعيد دالة numpy.resize مجموعة جديدة بناءً على الحجم المحدد

إذا كان حجم المجموعة الجديدة أكبر من الحجم الأصلي، فإنها تحتوي على نسخ من العناصر الأصلية من المجموعة.

numpy.resize(arr, shape)

شرح المعلمات:

arr: المجموعة التي سيتم تعديل حجمهاshape: عودة شكل المجموعة الجديدة

import numpy as np
a = np.array([[1, 2, 3, 4, 5, 6, 7, 8], [4, 5, 6, 7, 8, 9, 10, 11]])
print ('المجموعة الأولى:')
print(a)
print('\n')
print ('شكل المجموعة الأولى:')
print (a.shape)
print('\n')
b = np.resize(a, (4, 2))
print ('المجموعة الثانية:')
print (b)
print('\n')
print ('شكل المجموعة الثانية:')
print (b.shape)
print('\n')
 # لاحظ أن السطر الأول من a يكرر في b لأن الحجم قد زاد
print ('تعديل حجم المجموعة الثانية:')
b = np.resize(a, (5, 5))
print (b)

النتيجة هي:

المصفوفة الأولى:
[[ 1 2 3 4 5 6 7 8]
 [ 4 5 6 7 8 9 10 11]]
شكل المجموعة الأولى:
(2, 8)
المجموعة الثانية:
[[1 2]
 [3 4]
 [5 6]
 [7 8]
شكل المجموعة الثانية:
(4, 2)
تعديل حجم المجموعة الثانية:
[[ 1 2 3 4 5]
 [ 6 7 8 4 5]
 [ 6 7 8 9 10]
 [11 1 2 3 4]
 [ 5 6 7 8 4]

numpy.append

تضيف دالة numpy.append القيم في نهاية المجموعة. تشمل عملية الاضافة تخصيص كامل المجموعة، وكذلك نسخ المجموعة الأصلية إلى مجموعة جديدة. بالإضافة إلى ذلك، يجب أن تطابق أبعاد المجموعة المدخلة، وإلا سيتم إنشاء ValueError.

يعود دائمًا دالة append إلى مجموعة خطية.

numpy.append(arr, values, axis=None)

شرح المعلمات:

arr: المدخل هو المجموعةvalues: القيم التي سيتم إضافتها إلى arr، يجب أن تكون لها نفس الشكل كـ arr (باستثناء المحور الذي سيتم إضافته)axis: افتراضياً None. عند عدم تعريف axis، يتم الإضافة بشكل أفقي، والنتيجة دائمًا هي مجموعة خطية!

import numpy as np
a = np.array([[1, 2, 3, 4, 5, 6, 7, 8], [4, 5, 6, 7, 8, 9, 10, 11]])
print ('المجموعة الأولى:')
print(a)
print('\n')
print ('إضافة العنصر إلى المجموعة:')
print (np.append(a, [7, 8, 9]))
print('\n')
print ('على المحور 0 إضافة العنصر:')
print (np.append(a, [[1,2,3,4,5,6,7,8]],axis = 0))
print('\n')
print ('إضافة عناصر Along محور 1:')
print (np.append(a, [[5,5,5,5,5,5,5],[7,8,9,7,8,9,1]],axis = 1))

النتيجة هي:

المصفوفة الأولى:
[[ 1 2 3 4 5 6 7 8]
 [ 4 5 6 7 8 9 10 11]]
إضافة عناصر إلى النقاط:
[ 1 2 3 4 5 6 7 8 4 5 6 7 8 9 10 11 7 8 9]
إضافة عناصر Along محور 0:
[[ 1 2 3 4 5 6 7 8]
 [ 4 5 6 7 8 9 10 11]
 [ 1 2 3 4 5 6 7 8]
إضافة عناصر Along محور 1:
[[ 1 2 3 4 5 6 7 8 5 5 5 5 5 5 5]]
 [ 4 5 6 7 8 9 10 11 7 8 9 7 8 9 1]]

numpy.insert

يتم إدراج وظيفة numpy.insert في نقطة قبلها على محور محدد في النقاط المدخلة.

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

numpy.insert(arr, obj, values, axis)

شرح المعلمات:

arr: المدخل هو المجموعةobj: Index at which to insert the valuesقيم: القيم التي سيتم إدراجهامحور: تم insertion Along this axis, if not provided, the input array will be expanded

import numpy as np
a = np.array([[1,2],[3,4],[5,6]])
 
print ('المجموعة الأولى:')
print(a)
print('\n')
 
print ('لم يتم تقديم معامل الإسقاط Axis. سيتم توسيع المدخل قبل إدراجه.')
print (np.insert(a,3,[11,12]))
print('\n')
print ('تم نقل معامل محور. سيُنقلُ مجموعة القيم لتطابق مجموعة المدخلات.')
 
print ('محور 0ُ تُنقلُ:')
print (np.insert(a,1,[11],axis = 0))
print('\n')
 
print ('محور 1ُ تُنقلُ:')
print (np.insert(a,1,11,axis = 1))

النتيجة الصادرة كالتالي:

المصفوفة الأولى:
[[1 2]
 [3 4]
 [5 6]]
لم يتم تقديم معامل الإسقاط Axis. سيتم توسيع المدخل قبل إدراجه.
[ 1 2 3 11 12 4 5 6]
تم نقل معامل محور. سيُنقلُ مجموعة القيم لتطابق مجموعة المدخلات.
محور 0ُ تُنقلُ:
[[ 1 2]
 [11 11]
 [ 3 4]
 [ 5 6]]
محور 1ُ تُنقلُ:
[[ 1 11 2]
 [ 3 11 4]
 [ 5 11 6]]

numpy.delete

يعيد وظيفة numpy.delete مجموعة جديدة تحتوي على إزالة الفرع المحدد من المدخل. مثل وظيفة insert()، إذا لم يتم تقديم معامل المحور، سيتم توسع المدخل قبل إدراجه.

Numpy.delete(arr, obj, axis)

شرح المعلمات:

arr: المدخل هو المجموعةobj: يمكن تقطيعه، أو هو عدد صحيح أو مجموعة من الأعداد الصحيحة، ويعين ما يجب إزالته من المدخلaxis: يتم إزالة الفروع المحددة في هذا المحور، إذا لم يتم تقديم، سيتم توسع المدخل قبل إدراجه

import numpy as np
 
a = np.arange(12).reshape(3,4)
 
print ('المجموعة الأولى:')
print(a)
print('\n')
 
print ('لم يتم تقديم معامل الإسقاط Axis. سيتم توسيع المدخل قبل إدراجه.')
print (np.delete(a, 5))
print('\n')
 
print ('إزالة العمود الثاني:')
print (np.delete(a, 1, axis = 1))
print('\n')
 
print ('قطعة الحلقة التي تحتوي على القيم البديلة بعد إزالة العناصر من المجموعة:')
a = np.array([1,2,3,4,5,6,7,8,9,10])
print (np.delete(a, np.s_[::2]))

النتيجة هي:

المصفوفة الأولى:
[[ 0 1 2 3]
 [ 4 5 6 7]
 [ 8 9 10 11]]
لم يتم تقديم معامل الإسقاط Axis. سيتم توسيع المدخل قبل إدراجه.
[ 0 1 2 3 4 6 7 8 9 10 11]
إزالة العمود الثاني:
[[ 0 2 3]
 [ 4 6 7]
 [ 8 10 11]]
قطعة الحلبة التي تحتوي على القيم البديلة بعد إزالة العناصر من المجموعة:
[ 2 4 6 8 10]

numpy.unique

استخدام وظيفة numpy.unique لاستبعاد العناصر المكررة من المجموعة

numpy.unique(arr, return_index, return_inverse, return_counts)

arr: المدخل هو المجموعة، إذا كانت المجموعة ليست مجموعة أحادية الأبعاد، فإنها ستتوسعreturn_index: إذا كان True، يعيد موقع العناصر الجديدة في المجموعة القديمة (السطر)، ويخزن في شكل قائمةreturn_inverse: إذا كان True، يعيد موقع العناصر القديمة في المجموعة الجديدة (السطر)، ويخزن في شكل قائمةreturn_counts: إذا كان True، يعيد عدد مرات ظهور العناصر في المجموعة الأصلية في المجموعة المكررة

import numpy as np
 
a = np.array([5,2,6,2,7,5,6,8,2,9])
 
print ('المجموعة الأولى:')
print(a)
print('\n')
 
print ('الرقم الأول من مجموعة الأعداد المكررة:')
u = np.unique(a)
print(u)
print('\n')
 
print('مؤشرات المجموعة المكررة: ')
u,indices = np.unique(a,return_index=True)
print(indices)
print('\n')
 
يمكننا رؤية القيم التي تتطابق مع مؤشرات المصفوفة الأصلية:
print(a)
print('\n')
 
print('مؤشرات المجموعة المكررة: ')
u,indices = np.unique(a,return_inverse=True)
print(u)
print('\n')
 
print('المؤشرات هي: ')
print(indices)
print('\n')
 
print('إعادة بناء المصفوفة الأصلية باستخدام المؤشرات: ')
print(u[indices])
print('\n')
 
print('عدد المرات التي يظهر فيها العناصر المكررة: ')
u,indices = np.unique(a,return_counts=True)
print(u)
print(indices)

النتيجة هي:

المصفوفة الأولى:
[5 2 6 2 7 5 6 8 2 9]
القيم المكررة الأولى:
[2 5 6 7 8 9]
مؤشرات المجموعة المكررة:
[1 0 2 4 7 9]
يمكننا رؤية القيم التي تتطابق مع مؤشرات المصفوفة الأصلية:
[5 2 6 2 7 5 6 8 2 9]
مؤشرات المجموعات المكررة:
[2 5 6 7 8 9]
المؤشرات هي:
[1 0 2 0 3 1 2 4 0 5]
إعادة بناء المصفوفة الأصلية باستخدام المؤشرات:
[5 2 6 2 7 5 6 8 2 9]
عدد المرات التي يظهر فيها العناصر المكررة:
[2 5 6 7 8 9]
[3 2 2 1 1 1]