numpy.append() في Python

وظيفة append() في Python numpy تُستخدم لدمج مصفوفتين. تعيد هذه الوظيفة مصفوفة جديدة وتبقى المصفوفة الأصلية دون تغيير.

صيغة append() في NumPy

صيغة الوظيفة هي:

numpy.append(arr, values, axis=None)
  • arr يمكن أن تكون كائن شبيه بمصفوفة أو مصفوفة NumPy. يتم إلحاق القيم بنسخة من هذه المصفوفة.
  • القيم هي كائنات شبيهة بمصفوفة ويتم إلحاقها في نهاية عناصر “arr”.تحدد المحور الذي يتم فيه إلحاق القيم المحور الذي يتم فيه إلحاق القيم. إذا لم يتم توفير المحور، يتم استواء كل من المصفوفتين.
  • أمثلة على Python numpy.append()

أمثلة على Python numpy.append()

دعنا نلقي نظرة على بعض أمثلة وظيفة NumPy append().

1. استواء مصفوفتين

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[10, 20], [30, 40]])

# لم يتم توفير محور، ستتم استواء عناصر المصفوفة
arr_flat = np.append(arr1, arr2)

print(arr_flat)  # [ 1  2  3  4 10 20 30 40]

2. الدمج على طول المحور

import numpy as np

arr_merged = np.append([[1, 2], [3, 4]], [[10, 20], [30, 40]], axis=0)
print(f'Merged 2x2 Arrays along Axis-0:\n{arr_merged}')

arr_merged = np.append([[1, 2], [3, 4]], [[10, 20], [30, 40]], axis=1)
print(f'Merged 2x2 Arrays along Axis-1:\n{arr_merged}')

الناتج:

Merged 2x2 Arrays along Axis-0:
[[ 1  2]
 [ 3  4]
 [10 20]
 [30 40]]
Merged 2x2 Arrays along Axis-1:
[[ 1  2 10 20]
 [ 3  4 30 40]]
  • عند دمج المصفوفات 2×2 على طول محور x، فإن حجم المصفوفة الناتجة هو 4×2.
  • عند دمج المصفوفات 2×2 على طول محور y، فإن حجم المصفوفة الناتجة هو 2×4.

3. دمج مصفوفات ذات أشكال مختلفة

تُثير وظيفة append() ValueError إذا كانت الصفائف كلاهما ذات أشكال مختلفة، باستثناء المحور. لنفهم هذ scenario بمثال بسيط.

arr3 = np.append([[1, 2]], [[1, 2, 3], [1, 2, 3]])
print(arr3)

arr3 = np.append([[1, 2]], [[1, 2], [3, 4]], axis=0)
print(arr3)
  • في المثال الأول، تُسطح عناصر الصفيفة. لذا حتى لو كانت أحجامهما مختلفة تمامًا – 1×2 و 2×3، فإن append() يعمل بشكل جيد.
  • في المثال الثاني، أشكال الصفائف هي 1×2 و 2×2. نظرًا لأننا نُلصق على طول المحور 0، يمكن أن يكون شكل المحور 0 مختلفًا. يجب أن تكون الأشكال الأخرى متطابقة، لذا سيعمل append() هنا أيضًا بشكل جيد.

الناتج:

[1 2 1 2 3 1 2 3]

[[1 2]
 [1 2]
 [3 4]]

لنلقي نظرة على مثال آخر حيث سيتم رفع ValueError.

>>> import numpy as np
>>> 
>>> arr3 = np.append([[1, 2]], [[1, 2, 3]], axis=0)
Traceback (most recent call last):
  File "", line 1, in 
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/numpy/lib/function_base.py", line 4528, in append
    return concatenate((arr, values), axis=axis)
ValueError: all the input array dimensions except for the concatenation axis must match exactly
>>> 
Python numpy append() ValueError

أشكال الصفائف هي 1×2 و 2×3. نظرًا لاختلاف أشكال المحور 1، تُثار ValueError. المرجع: وثائق الواجهة البرمجية

Source:
https://www.digitalocean.com/community/tutorials/numpy-append-in-python