numpy.append() בפייתון

פייתון numpy פונקציית append() משמשת למיזוג של שני מערכים. פונקציה זו מחזירה מערך חדש והמערך המקורי נשמר ללא שינויים.

תחביר של NumPy append()

תחביר הפונקציה הוא:

numpy.append(arr, values, axis=None)
  • ה-arr יכול להיות אובייקט דומה למערך או מערך NumPy. הערכים מתווספים להעתק של מערך זה.
  • ה-ערכים הם אובייקטים דומים למערך והם מתווספים לסוף האלמנטים של "arr".
  • ה-ציר קובע את הציר שבו הערכים מתווספים. אם הציר אינו ניתן, שני המערכים ישטחו.

דוגמאות ל־Python numpy.append()

בואו נסתכל על כמה דוגמאות לשימוש בפונקציה append() של NumPy.

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 אם המערכות בצורות שונות, למעט הציר. בואו נבין תרחיש זה עם דוגמה פשוטה.

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.הפניה: מסמך ה- API

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