Tutorial de Numpy - Apéndice del array de NumPy
Numpy también tiene una función append
para añadir datos a el array, al igual que la operación append
para list
en Python. Pero en algunos casos, append
en NumPy es también un poco similar al método extend
en la list
de Python.
Array append
Primero listemos la sintaxis de ndarray.append
.
Parámetros de entrada
nombre de parámetro | tipo de datos | Descripción |
---|---|---|
arr |
array_like | un array para añadir un elemento |
values |
array_like | Matriz añadida |
None |
INT | El eje a lo largo del cual se añaden los values |
Hagamos algunos ejemplos,
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.])
Cuando no se da el axis
, tanto el arr
como los values
se aplanan antes de la operación. El resultado será un array 1-D. En el ejemplo anterior, no necesitamos preocuparnos por la forma de dos matrices dadas.
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
Cuando el axis
es igual a 0
, los valores
del array serán añadidos a la arr
en la dirección de la columna. Aumentará el ValueError
si dos matrices dadas no tienen la misma longitud en la fila - ValueError: all the input array dimensions except for the concatenation axis must match exactly
.
Puedes intentar por ti mismo añadir los datos en la dirección de la fila con el parámetro axis=1
.
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