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.
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.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook