Numpy Tutorial - NumPy Array anhängen

Numpy hat auch eine append Funktion, um Daten an ein Array anzuhängen, genau wie die append Operation an List in Python. Aber in einigen Fällen ist append in NumPy auch ein wenig ähnlich wie die erweiternde Methode in Python list.

Array append

Lassen Sie uns zuerst die Syntax von ndarray.append auflisten.

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

Eingangsparameter

Parameterbezeichnung Datentyp Beschreibung
arr array_like Ein Array zum Hinzufügen eines Elements
values array_like Array hinzugefügt
axis INT Die Achse, entlang derer values angehängt werden.

Machen wir einige Beispiele,

In [1]: import numpy as np
        arrayA = np.arange(12).reshape(3, 4)
        arrayB = np.ones((1, 4))
        np.append(arrayA, arrayB)
        
Out[1]: array([ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10., 11.,  1.,
        1.,  1.,  1.])

Wenn axis nicht angegeben ist, werden sowohl arr als auch values vor der Operation abgeflacht. Das Ergebnis wird ein 1-D Array sein. Im obigen Beispiel brauchen wir uns nicht um die Form von zwei gegebenen Arrays zu kümmern.

In [2]: np.append(arrayA, arrayB, axis=0)
Out[2]: array([[ 0.,  1.,  2.,  3.],
       [ 4.,  5.,  6.,  7.],
       [ 8.,  9., 10., 11.],
       [ 1.,  1.,  1.,  1.]])
In [2]: np.append(arrayA, np.ones((1, 3)), axis=0)
        ---------------------------------------------------------------------------
        ValueError                                Traceback (most recent call last)
        <ipython-input-25-fe0fb14f5df8> in <module>()
        ----> 1 np.append(arrayA, np.ones((1, 3)), axis=0)

        D:\ProgramData\Anaconda3\lib\site-packages\numpy\lib\function_base.py in append(arr, values, axis)
           5164         values = ravel(values)
           5165         axis = arr.ndim-1
        -> 5166     return concatenate((arr, values), axis=axis)

        ValueError: all the input array dimensions except for the concatenation axis must match exactly

Wenn axis gleich 0 ist, wird das Array values an arr in Richtung der Spalte angehängt. Es wird den ValueError erhoehen, wenn zwei gegebene Arrays nicht die gleiche Laenge in der Zeile haben - ValueError: alle Array-Dimensionen der Eingabe ausser der Verkettung axis muessen exakt übereinstimmen.

Du kannst selbst versuchen, die Daten in Zeilenrichtung mit dem Parameter axis=1 anzuhängen.